码迷,mamicode.com
首页 > 其他好文 > 详细

爬虫1:get请求的翻页及思考

时间:2016-06-29 13:23:09      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

刚开始接触爬虫,理解还不透彻,说一些初始阶段的想法{1.因为get请求的方式(请求体无数据,不能通过Request.add_data()函数来添加数据,实现对网址翻页;需要直接对网址进行操作来实现翻页功能)2.post请求方式存在数据请求数据(可以通过Request.add_data()函数来添加数据,实现对网址的翻页)}

下面是标准的老师总结的两者差别

{   
  1. get
是从服务器上获取数据,post是向服务器传送数据。
  2. GET请求参数显示,都显示在浏览器网址上,POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送
  3. 尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。
}

#coding=utf-8
#1.导入头文件

#2.先不要做循环,先设置出第一页,再循环做接下来的几页

#步骤  #3.分出变化网址的内容和无变化的网址内容

  #4.将变化的内容做成字典,然后编码,做出浏览器识别的内容
  #5.进行网址申请(无变化的网址内容加上变化的内容字典)
  #6.用系统库打开申请后的内容,再读取内容
  #7.用xpath进行处理,获取独条内容

技术分享

   

代码编写中遇到的两个问题:  1.字典的使用错误,理解方向错  2.xpath()函数返回对象不清楚的错误

先说第一个:当时是value={ ‘start‘: ‘j‘ }这样写导致j 成了字符串类型,循环后变量的值不发生改变,所以一直打印的爬取的内容是第一页;

再说第二个:当时不清楚xpath()函数的返回值类型,所以不理解下面的name = ...[0].text;为什么要取[0];查询后发现这个函数返回值类型为列表;要取列表里的值需要加上下标。而上一个result取值时是无下标;因为用for循环取出里面的内容。

还有一个:第28行代码;因为这个爬取的是招聘网站的内容,需要知道每个工作的具体要求,就需要具体进入链接;  此处用到了字符串的拼接,因为直接爬取的属性内容为缺少host属性的值,是不能直接被粘贴使用的;用字符串拼接把host属性值和爬取到的 herf 属性值拼接在一起,保证了爬取到的链接经过粘贴复制可以直接使用

爬虫1:get请求的翻页及思考

标签:

原文地址:http://www.cnblogs.com/yyx1-1/p/5626400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!