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

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

时间: 2024-10-09 22:47:30

爬虫1:get请求的翻页及思考的相关文章

[python]利用urllib+urllib2解决爬虫分页翻页问题

最近由于公司的自动化测试工具需要将测试结果导出到excel中,奈何没有学SSH,导致无法在工具本身中添加(工具是开发做的),故转而使用python爬虫来做,开发过程中遇到了一个问题: 由于测试结果太多,需要翻页,而翻页时网址没有变化,这就导致抓取的时候没法依照网址去爬,遂去网上查找解决方法,最后找到利用urllib2提交post的方法来解决. 解决过程: 网址不变,而如果是用selenium的话,我又觉得太慢,毕竟selenium是用来做验收测试的,不是用来爬数据的.言归正传,利用urllib2

Scrapy爬虫案例01——翻页爬取

之前用python写爬虫,都是自己用requests库请求,beautifulsoup(pyquery.lxml等)解析.没有用过高大上的框架.早就听说过Scrapy,一直想研究一下.下面记录一下我学习使用Scrapy的系列代码及笔记. 安装 Scrapy的安装很简单,官方文档也有详细的说明 http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html .这里不详细说明了. 创建工程 我是用的是pycharm开发,打开pycharm

python爬虫_入门_翻页

写出来的爬虫,肯定不能只在一个页面爬,只要要爬几个页面,甚至一个网站,这时候就需要用到翻页了 其实翻页很简单,还是这个页面http://bbs.fengniao.com/forum/10384633.html,话说我得给这个人增加了多大的访问量啊...... 10384633重点关注下这个数字,这个就是页面的名称,现在尝试把这个数字+/-1看看有没有结果 验证http://bbs.fengniao.com/forum/10384634.html 可以看到,这个页面是可以访问的 再试试http:/

34.scrapy解决爬虫翻页问题

这里主要解决的问题: 1.翻页需要找到页面中加载的两个参数. '__VIEWSTATE': '{}'.format(response.meta['data']['__VIEWSTATE']), '__EVENTVALIDATION': '{}'.format(response.meta['data']['__EVENTVALIDATION']), 还有一点需要注意的就是 dont_filter=False yield scrapy.FormRequest(url=response.url, ca

ViewPager实现翻页步骤

之前觉得滑动翻页的效果挺炫的,目前初学android,所以自己在项目中尝试实现了这个效果.数据是动态的.实现效果主要有几个步骤: 1.创建两个布局文件,一个布局文件定义viewPager组件,如  <android.support.v4.view.ViewPager         android:id="@+id/vp_articles"        android:layout_width="match_parent"        android:la

ajax 显示评论并制作翻页

修改后台评论模型 创建search方法 //取出一件商品的评论 public function search($goodsId,$pageSize=5) { //要做ajax翻页 所以要自己写 $where['a.goods_id']=array('eq',$goodsId); //取出总的记录数 $count=$this->where($where)->count(); //计算总的页数 $pageCount=ceil($count / $pageSize); //获取当前页 $curren

Symfony2框架实战教程——第三天:用KnpPaginatorBundle实现翻页

创建业务数据模型 新闻数据算是我们业务模型里必不可少的模型之一.根据我们之前对需求的分析,我们可以很容易想到,新闻模型News需要的属性: 标题属性 文本属性 接下来,我们要在AppBundle里创建它,但是这些数据还需要一个持久层来保存数据,例如之前配置的Mysql.目前流行的开发方式,无论是Java还是ROR,都会使用ORM将数据库字段和类属性关联起来. Symfony2框架本身并不包含ORM工具(严格意义上来说,Symfony2框架,即FrameworkBundle,不包含ORM,安全组

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源占用少,无依赖,多平台的javascript滚动插件.iScroll不仅仅是 滚动.它可以处理任何需要与用户进行移动交互的元素.在你的项目中包含仅仅4kb大小的iScroll,你的项目便拥有了滚动,缩放,平移,无限滚动,视差滚动,旋转功能.iScroll的强大毋庸置疑,本人也非常欢迎大家使用iScr

asp.net 自定义翻页,无需外部dll控件

翻页函数 private PagedDataSource GetPageNumber(List<Comments> list, int pagesize, string gonumber) { // 数据源 PagedDataSource Pgds = new PagedDataSource(); // Pgds.DataSource = list; // 设置允许分页 Pgds.AllowPaging = true; // 每页显示为6行 Pgds.PageSize = pagesize;