刚开始接触爬虫,理解还不透彻,说一些初始阶段的想法{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 属性值拼接在一起,保证了爬取到的链接经过粘贴复制可以直接使用