import scrapy
from bs4 import BeautifulSoupclass BookSpiderSpider(scrapy.Spider):name = 'book_spider'allowed_domains = ['17k.com']start_urls = ['https://www.17k.com/all/book/2_0_0_0_0_0_0_0_1.html']"""后边会解释这个start_requests方法是肿么肥事"""def start_requests(self):for url in self.start_urls:yield scrapy.Request(url=url,callback=self.parse)def parse(self, response, **kwargs):print(response.url)soup = BeautifulSoup(response.text, 'lxml')trs = soup.find('div', attrs={'class': 'alltable'}).find('tbody').find_all('tr')[1:]for tr in trs:book_type = tr.find('td', attrs={'class': 'td2'}).find('a').textbook_name = tr.find('td', attrs={'class': 'td3'}).find('a').textbook_words = tr.find('td', attrs={'class': 'td5'}).textbook_author = tr.find('td', attrs={'class': 'td6'}).find('a').textprint(book_type, book_name, book_words, book_author)#break"""下面这个是xpath解析的方式"""# trs = response.xpath("//div[@class='alltable']/table/tbody/tr")[1:]# for tr in trs:#     type = tr.xpath("./td[2]/a/text()").extract_first()#     name = tr.xpath("./td[3]/span/a/text()").extract_first()#     words = tr.xpath("./td[5]/text()").extract_first()#     author = tr.xpath("./td[6]/a/text()").extract_first()#     print(type, name, words, author)"""1 找到下一页的url,请求到下一页 分页逻辑 这个逻辑是最简单的那种线性的一直爬"""# next_page_url = soup.find('a', text='下一页')['href']# if 'javascript' not in next_page_url:#     yield scrapy.Request(#         url=response.urljoin(next_page_url),#         method='get',#         callback=self.parse#     )# 2 残暴的分页逻辑"""拿到所有的url,就发送请求 会经过引擎、调度器(集合 队列) 完成这里的去重工作,交给下载器,再返回给爬虫,但是那个start_url还是会重复,重复的原因是继承了Spider这个类在于父类的方法有dont_filter=True这个东西所以这里要重写Spider类里面的start_requests的方法,默认就过滤了这样就解决了start_url重复的问题"""# # a_list = soup.find('div', attrs={'class': 'page'}).find_all('a')for a in a_list:if 'javascript' not in a['href']:yield scrapy.Request(url=response.urljoin(a['href']),method='get',callback=self.parse)

scrapy的分页(翻页处理)相关推荐

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

    34.scrapy解决爬虫翻页问题 参考文章: (1)34.scrapy解决爬虫翻页问题 (2)https://www.cnblogs.com/lvjing/p/9706509.html (3)htt ...

  2. [Python Scrapy爬虫] 二.翻页爬取农产品信息并保存本地

    前面 "Python爬虫之Selenium+Phantomjs+CasperJS" 介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分 ...

  3. scrapy模拟浏览器翻页爬取智联

    智联爬取中,页码的数字和url是不匹配的,因此盲目的拼接url会造成错误,因此可以采用模拟浏览器爬取网页 要模拟浏览器需要知道scrapy流程,简图如下: 这里只是简单的写一些伪码,设计的数据清洗部分 ...

  4. 评论后的Ajax和刷新分页,Wordpress Ajax 评论分页/翻页 – Fatesinger

    WordPress 升级到4.4版本后源代码分页函数失效.只需要给paginate_comments_links函数加上个total参数就可以了.代码已更新. 如果某篇文章评论特别多的时候,我们可以启 ...

  5. Scrapy框架items数据建模、翻页请求、requests对象请求、meta参数的使用

    1. 数据建模 通常在做项目的过程中,在items.py中进行数据建模 1.1 为什么建模 定义item即提前规划好哪些字段需要抓,防止手误,因为定义好之后,在运行过程中,系统会自动检查 配合注释一起 ...

  6. oracle数据库如何写翻页_ORACLE数据库分页查询/翻页 最佳实践

    ORACLE数据库分页查询/翻页 最佳实践 一.示例数据: Select Count(*) From dba_objects ; ----------------------------------- ...

  7. 用AjaxPro实现无刷新翻页效果及数据库分页技术介绍

    在看本文之前,建议查看本人的系列文章: <AjaxPro与服务器端交互过程中如何传值>:http://blog.csdn.net/zhoufoxcn/archive/2008/01/05/ ...

  8. springboot:实现分页查询,以及翻页功能

    在pom.xml中引入依赖 <!-- 分页查询插件 --><dependency><groupId>com.github.pagehelper</groupI ...

  9. 倒序查询_mysql大表分页查询翻页优化方案

    mysql分页查询是先查询出来所有数据,然后跳过offset,取limit条记录,造成了越往后的页数,查询时间越长 一般优化思路是转换offset,让offset尽可能的小,最好能每次查询都是第一页, ...

最新文章

  1. 我和我的Android
  2. jmeter4.0 执行jmeter_server.bat报错
  3. java技术_JAVA-JDBC技术
  4. ZOJ 1151——Word Reversal
  5. jdbc 执行oracle命令,JDBC操作oracle
  6. 关于机器学习的最佳科普文章:《从机器学习谈起》
  7. 使用bat快速创建cocos2d-x模板
  8. XTP: 从XTP看Rust与C++接口FFI通信
  9. 小软件项目开发的管理
  10. mac安装appium环境 iPhone真机测试
  11. 从布朗运动到Black–Scholes
  12. 分组加密中的四种模式(ECB、CBC、CFB、OFB)
  13. PRACH, preamble, RO 的关系与区别
  14. 即时通讯源码,包含安卓,iOS,H5,MacOS,PC,Java后端
  15. k8s主从自动切换mysql_Kubernetes一键部署Mycat+Mysql主从集群
  16. 概率图模型(6)马尔科夫随机场
  17. 恰当的活法――有感于《杜拉拉升职记》
  18. Verilog/@符号什么意思
  19. 日乒赛-马龙爆冷止步次轮 朱雨玲陈梦率先进8强
  20. 十一长假不能错过的几款开源 Linux 游戏

热门文章

  1. 家用计算机按键不灵怎么修,电脑键盘两个ctrl键失灵怎么回事?ctrl键失灵的修复方法...
  2. 关于ios XCode hangs at Attaching to (app name)
  3. 如何将图片上的文字识别成可修改的文本
  4. 重点来了,具有优质脂肪的坚果居然是减肥的好帮手!
  5. 最小公共子串——力扣
  6. 什么是HTTP状态码?常见HTTP状态码盘点
  7. 在Ubuntu 16.04中安装Google拼音
  8. docker常用命令(学习自用)
  9. 3D Max中布尔运算介绍
  10. 星起航:跨境电商行业卖家可利用新技术打造成熟供应链