python爬虫(二):向网页提交数据

python爬虫(二):向网页提交数据

回忆一下,我们有的时候在看一些网站的时候,是否遇见过一些网站里面的信息开始显示一部分,然后当我们把鼠标滑轮向下拉动后,又显示出一些信息。这就是异步加载。我的上一篇文章python爬虫百度贴吧标题数据爬取的所有标题都是页面已经加载好的。但是对于这种开始没有加载好的数据我们应该如何爬取呢?

接下来我们先介绍下一些概念:

  • 异步加载:举个简单的例子就是说,假如老师判作业,有两种情况,第一种就是无论哪个学生先写完,都等待到所有的同学全部写完,老师讲所有的作业都收齐后开始判作业。第二种情况就是有一个同学写完作业,老师就判一个。这样可以节省一些时间,也不会影响进度。这里的第二种方法就是异步加载。
  • Get方法是从服务器上获取数据
  • Post是向服务器传送数据
  • Get通过构造URL中的参数来实现功能
  • Post是将数据放在header中提交数据

向网页提交数据

  • 核心方法:requests.post
  • 核心步骤:构造表单-提交表单-获取返回信息

进入我们构建代码环节

首先 我们先来浏览下我们要爬取的网站:

我们现在来打开Chrome的审查元素,如何所示

我们在网页的源代码中,我们可以发现,每个卡片对应的标题都存放在这种格式的代码中。

<div class="card-title">Titomirov Vodka LLC</div>

OK,我们寻找到了规律,那么我们就可以根据这个规律构建我们的程序:

title = re.findall(‘"card-title">(.*?)</div>‘,post_html.text,re.S)

以上代码不明白什么意思,可以观看python爬虫百度贴吧标题数据

那么查找标题我们写完了,接下来进入我们的重点。

当我们向下滑动,并且滑动到底部的时候,会出现这种现象:

这就是在异步加载数据,那么我们如何获取这些异步加载瘦的数据呢?

使用我们的审查元素,点击NetWork,如图所示:

现在所有的数据都是空的,这个时候我们向下滑动我们的鼠标滚轮,这个时候你就会看见很多的数据,如图:

在NetWork中点击第一个name,我们会看见以下信息:

现在我们来分析一下:

查看

Remote Address:50.18.112.181:443
Request URL:https://www.crowdfunder.com/deals&template=false&random_seed=1
Request Method:POST
Status Code:200 OK

Request Method:POST这说明我们向网页提交了数据

提交地址:https://www.crowdfunder.com/deals&template=false&random_seed=1

我们接下来分析提价数据,往下翻,找到:

form Data

entities_only:true
page:1

以上就是提交信息,根据英文意思判断 page就是我们的页数。根据以上信息 我们就可以构建我们的表单了:

#注意这里的page后面跟的数字需要放到引号里面。
post_data = {
    ‘entities_only‘:‘true‘,
    ‘page‘:‘1‘
}

提交此表单后,我们就可以获取返回信息,在返回信息中应用正则表达式,提取我们感兴趣饿的内容。

完整代码如下:

#-*-coding:utf8-*-
import requests
import re
# url = ‘https://www.crowdfunder.com/browse/deals‘
url = ‘https://www.crowdfunder.com/deals&template=false‘
post_data = {
    ‘entities_only‘:‘true‘,
    ‘page‘:‘1‘
}
# 提交并获取返回数据
post_html = requests.post(url,data=post_data)
#对返回数据进行分析
titles = re.findall(‘"card-title">(.*?)</div>‘,post_html.text,re.S)
for title in titles:
    print title

当你将’page’:’1’,改为’page’:’2’ 将会得到不同的数据。

以上就是全部的内容,有什么问题或者不足,欢迎提出来,我们继续讨论。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 02:50:44

python爬虫(二):向网页提交数据的相关文章

Python爬虫抓取网页图片

本文通过python 来实现这样一个简单的爬虫功能,把我们想要的图片爬取到本地. 下面就看看如何使用python来实现这样一个功能. # -*- coding: utf-8 -*- import urllib import re import time import os #显示下载进度 def schedule(a,b,c): ''''' a:已经下载的数据块 b:数据块的大小 c:远程文件的大小 ''' per = 100.0 * a * b / c if per > 100 : per =

Python 爬虫工程师必学 App数据抓取实战

第1章 课程介绍介绍课程目标.通过课程能学习到的内容.学会这些技能能做什么,对公司业务有哪些帮助,对个人有哪些帮助.介绍目前app数据抓取有哪些困难,面临的挑战,本实战课程会利用哪些工具来解决这些问题,以及本实战课程的特点 ... 1-1 python爬虫工程师必备技能--App数据抓取实战课程导学第2章 windows下搭建开发环境介绍项目开发需要安装的开发软件,讲解了安卓模拟器对比以及夜神安卓模拟器安装.介绍.简单使用和Genymotion安卓模拟器简单分析 介绍App应用抓包工具对比以及f

Python爬虫工程师必学——App数据抓取实战

Python爬虫工程师必学 App数据抓取实战 爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.主要讲解如何用python实现App数据抓取 数据去重又称重复数据删除,是指在一个数字文件集合中,找出重复的数据并将其删除,只保存唯一的数据单元.数据去重可以有效避免资源的浪费,所以数据去重至关重要 数据去重 数据去重可以从两个节点入手:一个是URL去重.即直接筛选掉重复的URL:另一个是数据库去重.即利用数据库的一些特性筛选重复的数据. def process_spider_

python爬虫——爬取网页数据和解析数据

1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.只要浏览器能够做的事情,原则上,爬虫都能够做到. 2.网络爬虫的功能   图2 网络爬虫可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取网站上面的图片,比如有些朋友将某些网站上的图片全部爬取下来,集中进行浏览,同时,网络爬虫也可以用于金融投资领域,比如可以自动爬取一些金融信息,并进行投资分析等. 有时,我们比较喜欢的新闻网站可能有几个,每次

python爬虫(二)_HTTP的请求和响应

HTTP和HTTPS HTTP(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收HTML页面的方法 HTTPS(HyperText Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层. SSL(Secure Socket Layer安全套接层)主要用于web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全. HTTP的端口号为80 HT

python爬虫——对爬到的数据进行清洗的一些姿势(5)

做爬虫,当然就要用数据.想拿数据进行分析,首先清洗数据.这个清洗数据包括清除无用数据列和维度,删除相同数据,对数据进行勘误之类的. 从各大不同新闻网站可以爬到重复新闻...这个可以有.之前为了对爬到的新闻信息进行深度挖掘去了这个网站http://blog.reetsee.com/archives/237虽说没有对数据进行更进一步的挖掘,好歹有处理数据.处理重复新闻可以使用python结巴分词.统计分词信息,词典差距过大,词典频度比差距过大,都可以算不同新闻. 对新闻内容字符串进行检查需要这3种操

使用notepad++学习python爬虫,print网页中文乱码问题

今天学习使用python爬虫的时候发现爬到的网页中文会乱码,一直网上搜索解决办法,一个一个试验过去,发现还是乱码,然后我就开始使用其它方法测试,用python自带的编辑器打开是正常的,发现是notepad++这款编辑器的问题,我更改了编码方式为utf-8无bom,尝试了所有设置,都没有用,新建,打开文件默认一直都是ansi格式,pynpp这款快捷打开.py格式的插件运行一直乱码,虽然没有发现问题的根源,但是知道编码是没有问题的,主要是这款编辑器出现的一些小问题 不过百度过后发现如果是乱码问题,最

python爬虫基础,post提交方式复习

#-*-coding:utf8-*- #参考学习官方资料 http://docs.python-requests.org/zh_CN/latest/user/quickstart.html #POST请求与POST的提交方式(比如post请求方式,application/json编码后的提交)#application/x-www-form-urlencoded 以form表单的形式提交数据,这是最常见的一种#application/json 以json串提交数据#multipart/form-d

Python爬虫-抓取网页数据并解析,写入本地文件

之前没学过Python,最近因一些个人需求,需要写个小爬虫,于是就搜罗了一批资料,看了一些别人写的代码,现在记录一下学习时爬过的坑. 如果您是从没有接触过Python的新手,又想迅速用Python写出一个爬虫,那么这篇文章比较适合你. 首先,我通过: https://mp.weixin.qq.com/s/ET9HP2n3905PxBy4ZLmZNw 找到了一份参考资料,它实现的功能是:爬取当当网Top 500本五星好评书籍 源代码可以在Github上找到: https://github.com/