post请求方式的翻页爬取内容及思考


1
#coding=utf-8 2 3 import urllib2 4 import urllib 5 import json 6 9 output = open('huizho.json', 'w')
11 for page in range(1,30): //爬取的页数,从1至29页 12 request =urllib2.Request('http://www.hdgtjy.com/Index/PublicResults') 13 request.add_header('X-Requested-With','XMLHttpRequest') 14 request.add_header('Content-Type','application/x-www-form-urlencoded') 15 values = 'page=%d&size=10'%page  或者values = 'page='+str(page)+'&size=10'
21 request.add_data(values) 22 response = urllib2.urlopen(request) 25 resHtml =response.read() 27 line = json.dumps(resHtml,ensure_ascii=False) + '\n'  //因为爬取的内容含有中文,所以ensure_ascii不能为默认值True; 28 29 output.write(line) 30 output.close()
本段代码主要实现post请求方式的翻页功能,爬取的内容为某汽车网站的内容;编写代码遇到以下一个问题
1.当把12、13、14,行代码放到for循环上面,会发生当爬取的页数首位数发生改变时(这里因为网页原因只验证了个位数和两位数),爬取的内容出错(极大部分内容丢失,且爬取的不是目标内容)
  ;原因:request.add_data(value)这句代码,会造成数据持续叠加;出现BUG
 需要每次翻页时都请求服务器,才不会造成BUG出现。(此处理解不是很到位,不会说,望高手指正)
2.json.dumps()函数 ensure_ascii属性默认为True;当爬取的内容中含有中文时需要修改默认值。

转载于:https://www.cnblogs.com/yyx1-1/p/5626487.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用Post方法爬取猎聘前五页数据需要按照以下步骤进行操作: 1.分析URL:首先需要分析猎聘的网页结构和数据请求方式。通过查看网页源代码和开发者工具,找到请求职位列表数据的URL。 2.设置请求参数:根据观察到的URL结构和请求方式,找到需要传递的请求参数。一般包括搜索关键词、页码、每页显示数量等。根据需要设置相应的参数值。 3.构造请求头和请求体:使用Python的Request库构造请求头和请求体,以便发送Post请求请求头包括User-Agent等信息请求体包括上一步设置的请求参数。 4.发送请求:使用Request库的post方法发送请求,并将返回的结果保存在一个响应变量中。 5.解析数据:根据返回的响应变量,使用合适的解析库(如BeautifulSoup等)解析网页内容,提取所需的数据信息。 6.翻页处理:根据需求,可以使用循环语句设置爬取前五页的数据。通过修改请求参数的页码值,依次请求每一页的数据,并将数据保存在适当的数据结构中。 7.数据存储:可以将每页的数据添加到一个列表中,或者保存在数据库中,以便后续处理和分析。 8.异常处理:在实际操作中,可能会遇到网络请求失败、网页结构变化等问题。为了保证爬虫程序的稳定性,需要添加异常处理机制,如捕获异常并进行适当的处理。 综上所述,以上是使用Post方法爬取猎聘前五页数据的基本步骤。需要注意的是,爬取猎聘等网站时要遵守相关的网站规则和法律法规,提高爬虫程序的合法性和道德性。 ### 回答2: 要使用POST方法爬取猎聘网前五页的数据,首先需要了解猎聘网的网页结构和接口。 步骤如下: 1. 打开猎聘网(www.liepin.com)网站,并在搜索框中输入相关的搜索关键词。 2. 网页将自动跳转到搜索结果页面。在浏览器的开发者工具中,选择Network面板,并勾选"Preserve log"选项,以便保留接下来的网络请求。 3. 在搜索结果页面中,可以看到搜索结果的第一页数据。通过查看Network面板中的请求,找到与搜索结果相关的接口。 4. 在网络请求中找到基于POST方法的接口,并查看该接口的请求参数。 5. 在Python中使用requests库发送POST请求,并将搜索关键词和请求参数传递给接口。可以使用json格式的数据作为请求体。 6. 将返回的数据进行解析和处理,在这个过程中,可能需要使用beautifulsoup或其他解析库来提取所需的信息。 7. 根据页面的分页结构,将前五页的数据进行循环爬取,并将结果存储在合适的数据结构中。 8. 完成爬取后,可以将结果保存到文本文件、数据库或其他形式的数据存储中,便于后续的数据处理和分析。 需要注意的是,爬取网站数据时应遵循相关法律法规和网站的使用条款,不得进行恶意请求和侵犯隐私等行为。 ### 回答3: 要用post方法爬取猎聘前五页的数据,需要以下步骤: 1. 导入相关的库和模块:首先需要导入Python的requests库和BeautifulSoup库,用于发送post请求和解析html文档。 2. 分析网页:在浏览器中打开猎聘网站,搜索相关职位并进入搜索结果页面。右键点击页面,选择“检查”(Inspect),查看网页的源代码。通过观察源代码,找到包含职位信息的元素结构和所需的post请求参数。 3. 构造post请求:在发送post请求之前,需要构造请求的url和参数。首先需要获取职位搜索的url,可以从浏览器的开发者工具中的网络面板查看request的url。然后根据分析的元素结构和所需的参数,构造post请求的data参数。 4. 发送post请求并获取相应:使用requests库发送post请求,将所需的url和data作为参数传递给post方法,获取网页的相应。 5. 解析网页:使用BeautifulSoup库对获取的网页相应进行解析。通过查找元素的标签和类等属性,提取出所需的职位信息。 6. 循环爬取前五页数据:通过观察猎聘网站的url结构,可以发现每一页的url后面都有一个页码参数。利用循环语句,构造每一页的url,并发送post请求,获取并解析网页相应,提取所需的职位信息。 综上所述,按照以上步骤,可以使用post方法爬取猎聘前五页的数据。需要注意的是,爬取网站时需要遵守网站的爬虫规则,并不过度频繁地发送请求,以免对网站造成负担。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值