刚开始接触爬虫,理解还不透彻,说一些初始阶段的想法{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请求的翻页及思考的更多相关文章

  1. scrapy爬虫系列之二--翻页爬取及日志的基本用法

    功能点:如何翻页爬取信息,如何发送请求,日志的简单实用 爬取网站:腾讯社会招聘网 完整代码:https://files.cnblogs.com/files/bookwed/tencent.zip 主要 ...

  2. Httpclient: 多层翻页网络爬虫实战(以搜房网为例)

    参考:http://blog.csdn.net/qy20115549/article/details/52912532 一.创建数据表 #创建表:用来存储url地址信息 create table so ...

  3. python爬虫_入门_翻页

    写出来的爬虫,肯定不能只在一个页面爬,只要要爬几个页面,甚至一个网站,这时候就需要用到翻页了 其实翻页很简单,还是这个页面http://bbs.fengniao.com/forum/10384633. ...

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

    1 #coding=utf-8 import urllib2 import urllib import json output = open('huizho.json', 'w') for page ...

  5. selenium模块跳过用户名密码验证码输入,加载浏览器标签和cookie,进行翻页爬虫多页动态加载的数据(js)

    能解决登陆一次后,之后不需要二次登陆的动态加载数据,网页保存的cookie和标签,加入到selenium自动化测试浏览器中 1 from selenium import webdriver 2 imp ...

  6. 34.scrapy解决爬虫翻页问题

    这里主要解决的问题: 1.翻页需要找到页面中加载的两个参数. '__VIEWSTATE': '{}'.format(response.meta['data']['__VIEWSTATE']), '__ ...

  7. 翻页采用jaxa

    <!-- 翻页采用jaxa --><script type="text/javascript">//class="page"下面的a被点 ...

  8. bug:翻页

    本章主要分享下,个人测试经历中遇见过的翻页bug 一.列表翻页 1.bug1:去请求翻页page=0,从0页开始算.一般来说page=0 和 page=1的数据是一模一样,所以翻第2页时会发现和第1页 ...

  9. API做翻页的两种思路

    在开发API的时候,有时候数据太多了,就需要分页读取. 基于偏移量的分页(Offset-based) 这种方式就是会提供一个每页笔数(page size)来定义返回条目的最大数,提供一个页数(page ...

随机推荐

  1. Problem F: 逆序排列

    #include<stdio.h> void sort(int *p,int n) { int i,t; ;i<n/;i++) { t=*(p+i); *(p+i)=*(p+n-i- ...

  2. Problem C: 更改大小写

    #include<stdio.h> int main() { ; ]; gets(a); while(a[i]!='\0') { ; ++i; } printf("%s" ...

  3. C# 中的.pdb/ .vshost.exe/ .vshost.exe.manifest文件

    转自 C# 中的.pdb/ .vshost.exe/ .vshost.exe.manifest文件讨论 pdb文件: 英文全称:Program Database File 中文全称:程序数据库 文件 ...

  4. JavaScript基础入门教程(五)

    说明 本系列博客的第一篇已经说明了,要求阅读者需要具有其它语言的编程基础,所以关于组数的基础部分本篇博客将不再赘述,主要讲js中数组的特性. 创建数组 数组的创建主要有两种方法,一种是数组直接量,还有 ...

  5. 【shiro】使用shiro搭建的项目,页面引用js,报错:Uncaught SyntaxError: Unexpected token <

    使用shiro搭建项目过程中,总是出现登录页面 登录第一次有效果,登陆第二次出现302状态码,第三次又有效果,第四次又没有效果的局面. 因此,采用ajax提交页面登录的用户名和密码,但是在引用js的过 ...

  6. python中出现 “'gbk' codec can't decode byte 0xf3 in position 20: illegal multibyte sequence”问题

    其实是打开文件方法open()中的模式有r,w,a等. 请看: r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. rb 以二进制格式打开一个文件用于只读.文件指针将会放在文件的开头 ...

  7. nodejs之路-[0]安装及简易配置

    题外话: 之前写过ubuntu下编译nodejs- 传送门:Ubuntu15.04编译安装nodejsV0.12.3 只是如今基本在win下做开发了-. 就以这篇帖子为开头,作为我踏上nodejs之路 ...

  8. java map 分析

    java 8 对HashMap进行了优化, 当碰撞时使用TreeNode的二分方法查找数据: 但是当数据碰撞厉害的时候, table有很多浪费. table 大小等于size/factor, 当碰撞很 ...

  9. [Functional Programming Moand] Update The State Of A State Monad (put)

    Stateful computations require the ability for their state to change overtime. We take a look on one ...

  10. OpenCV 之 直方图处理

    1  图像直方图 1.1  定义 统计各个像素值,在整幅图像中出现次数的一个分布函数.        1.2  标准化 $\quad p_r(r_k) = \frac{n_k}{MN} \qquad ...