Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使scrapy递归地移动到下一页

使scrapy递归地移动到下一页
EN

Stack Overflow用户
提问于 2014-10-31 19:19:14
回答 1查看 2.9K关注 0票数 3

我正在尝试使用scrapy抓取this page。我可以成功地抓取页面上的数据,但我也希望能够从其他页面抓取数据。(说下一步的)。以下是我的代码的相关部分:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def parse(self, response):
    item = TimemagItem()
    item['title']= response.xpath('//div[@class="text"]').extract()
    links = response.xpath('//h3/a').extract()
    crawledLinks=[]
    linkPattern = re.compile("^(?:ftp|http|https):\/\/(?:[\w\.\-\+]+:{0,1}[\w\.\-\+]*@)?(?:[a-z0-9\-\.]+)(?::[0-9]+)?(?:\/|\/(?:[\w#!:\.\?\+=&%@!\-\/\(\)]+)|\?(?:[\w#!:\.\?\+=&%@!\-\/\(\)]+))?$")

    for link in links:
        if linkPattern.match(link) and not link in crawledLinks:
            crawledLinks.append(link)
        yield Request(link, self.parse)

    yield item

我得到了正确的信息:来自链接页面的标题,但它根本不是“导航”。如何告诉scrapy导航?

EN

回答 1

Stack Overflow用户

发布于 2014-10-31 19:51:51

请查看Scrapy Link Extractors文档。它们是告诉您的爬虫跟随页面上的链接的正确方式。

看看你想要抓取的页面,我相信你应该遵循两个提取器规则。这是一个简单的爬行器的例子,它的规则适合你的时代网页需求:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from scrapy.contrib.spiders import CrawlSpider,Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor

class TIMESpider(CrawlSpider):
    name = "time_spider"
    allowed_domains = ["time.com"]
    start_urls = [
        'http://search.time.com/results.html?N=45&Ns=p_date_range|1&Ntt=&Nf=p_date_range%7cBTWN+19500101+19500130'
    ]

    rules = (
        Rule (SgmlLinkExtractor(restrict_xpaths=('//div[@class="tout"]/h3/a',))
            , callback='parse'),
        Rule (SgmlLinkExtractor(restrict_xpaths=('//a[@title="Next"]',))
            , follow= True),
        ) 

    def parse(self, response):
        item = TimemagItem()
        item['title']= response.xpath('.//title/text()').extract()

        return item
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26681957

复制
相关文章
安卓使ScrollView滚动到底部代码
scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部
全栈程序员站长
2022/07/15
1.1K0
vim下一页
整页翻页 ctrl-f ctrl-b f就是forword b就是backward
全栈程序员站长
2022/08/22
7660
Scrapy递归抓取简书用户信息
好久没有录制实战教程视频,大邓就在圣诞节后直接上干货。 之前写过一期【视频教程-用python批量抓取简书用户信息】的文章,是自己造的轮子,今天我趁着刚入门scrapy和xpath,操刀重写这个任务。 一、实战项目简介递归 我们要大批量获取简书网站上的用户数据,最直接的办法是给一个初识的用户url,从这个用户的关注的和粉丝中再抽取url,循环往复,周而复始。这其实就是递归。 数据项 获取到的url,我们需要对其进行请求,解析出想要的数据 昵称-nickname 关注数-followed 粉丝数- fol
企鹅号小编
2018/01/26
1.4K0
如何使叙事型落地页传达清晰有效
叙事化是描述一件事物的语言结构逻辑的行为,信息结构是一个网站所有数据元的内容逻辑。本文适合常规的说服性落地页设计的交互设计入门以及内容策划的信息组织入门。希望可以提高设计师与策划产品同事的信息对齐效率与输出效率,共同倾力于为目标用户提供最为清晰有效的信息输出。 回顾在我面向B端落地页的交互设计,我通常会经历与业务方对页面信息框架的方向性讨论,以及页面信息模块的细节沟通等业务场景。如何高效并有效地在解决产品增长诉求的基础上,更好为我们的用户提供清晰有效的产品服务信息传达以及恰当的阅读体验呢?我希望本文可以提供
腾讯云设计中心
2022/05/05
4730
如何使叙事型落地页传达清晰有效
php 获取上一页,下一页 的数据;
在网上找了点资料 也没有很好的解决方案;故 研究了一下; 话不多说 直接上代码; $key = array_search($id,$info);//获取当前id 键名; $b = $key+1; //当前键名+1 if(array_key_exists($b,$info)){ //判断在数组中 存不存在 $buttom = $info[$b]; //存在的话 取出相应的键值 }else{
用户8099761
2023/05/10
8580
editplus快捷键大全之editplus光标快捷键
前面我们讲了editplus快捷键大全之editplus文件快捷键,现在我们介绍一下editplus快捷键大全之editplus光标快捷键 移动光标到上一个制表符Shift+Tab 移动光标到上一个制表符的位置 左移一个字符 Left 光标向左移动一个字符 选区向左扩展一个字符 Shift+Left 将选定区域向左扩展一个字符 右移一个字符 Right 光标向右移动一个字符 选区向右扩展一个字符 Shift+Right 将选定区域向右扩展一个字符 文件结尾 Ctrl+End 移动到文档结尾处 选区扩展到文档结尾处 Ctrl+Shift+End 将选定区域扩展到文档结尾处 文件开始 Ctrl+Home 移动到文档开始处 选区扩展到文档开始处 Ctrl+Shift+Home 将选定区域扩展到文档开始处 下移 Down 光标下移一行 选区扩展到下一行 Shift+Down 将选定区域扩展到下一行 移动光标到行末 End 移动光标到当前行行末 选区扩展到当前行行末 Shift+End 将选定区域扩展到当前行行末 移动光标到行首 Home 移动光标到当前行行首 选区扩展到当前行行首 Shift+Home 将选定区域扩展到当前行行首 上移 Up 光标上移一行 选区扩展到上一行 Shift+Up 将选定区域扩展到上一行 光标下移一页 Page Down 光标下移一页 选区扩展到下一页 Shift+Page Down 将选定区域扩展到下一页 光标上移一页 Page Up 光标上移一页 选区扩展到上一页 Shift+Page Up 将选定区域扩展到上一页 向下滚动 Ctrl+Down 向下滚动一行 向上滚动 Ctrl+Up 向上滚动一行 光标移动到屏幕底部 Ctrl+Page Down 光标移动到当前屏幕底部 选区扩展到屏幕底部 Ctrl+Shift+Page Down 将选定区域扩展到当前屏幕底部 光标移动到屏幕顶部 Ctrl+Page Up 光标移动到当前屏幕顶部 选区扩展到屏幕顶部 Ctrl+Shift+Page Up 将选定区域扩展到当前屏幕顶部 移动到上一个单词 Ctrl+Left 移动到上一个单词 选区扩展到上一个单词 Ctrl+Shift+Left 将选定区域扩展到上一个单词 移动到下一个单词 Ctrl+Right 移动到下一个单词 选区扩展到下一个单词 Ctrl+Shift+Right 将选定区域扩展到下一个单词
ytkah
2022/03/14
1.1K0
爬虫的基本框架
具体地采集一个一个的数据的确让人产生成就感,然而这些教程却都忽略了爬虫最核心的逻辑抽象,也就是「爬虫应该采取什么样的策略遍历网页」。其实也很简单,只需要两个队列和一个集合,Scrapy 等框架拆开来看也是如此,本文参照 Scrapy 实现一个最基础的通用爬虫。
爬虫技术学习
2023/02/10
4350
爬虫的基本框架
使vuepress可以设置每个文章页的专属Keywords
因为希望写的博客可以更好的被搜索引擎所收录,所以希望可以设置每个文章页的专属keywords。
taixingyiji
2022/07/25
5350
使vuepress可以设置每个文章页的专属Keywords
如何用Python递归地思考问题?
递归是一个很经典的算法,在实际中应用广泛,也是面试中常常会提到的问题。本文就递归算法介绍如何在Python中实现递归的思想,以及递归在Python中使用时的一些注意事项,希望能够对使用Python的朋友提供一些帮助。
Python数据科学
2018/10/18
2.1K0
如何用Python递归地思考问题?
JS后退, JS返回上一页, JS返回下一页
1. history.go(-1), 返回两个页面: history.go(-2);
全栈程序员站长
2022/09/15
5K0
Python3使用Scrapy快速构建第一款爬虫
前言 最近因为想要构建自己的应用程序,所以需要用到爬虫,然后就开始了爬虫的鼓捣和学习。为了让大家更快的入门一款爬虫,为大家讲解一下scrapy的基本原理,和快速上手使用,爬取的页面是伯乐在线,大家可以去提前熟悉一下。 环境搭建 操作系统:WIN10 IDE: 使用的是全家桶Pycharm 1. 全局安装scrapy pip install scrapy -g 2. 创建一个存放项目的文件夹 mkdir Spider-Python3 3. 创建scrapy工程 scrapy startproject Arti
十里桃花舞丶
2018/05/17
6530
scrapy爬虫框架(四):scrapy中 yield使用详解
MySQL下载:点我 python MySQL驱动下载:pymysql(pyMySql,直接用pip方式安装)
渔父歌
2018/09/26
1.6K0
JS后退一页, JS返回上一页, JS返回下一页代码[通俗易懂]
1.history.go(-1), 返回两个页面: history.go(-2);
全栈程序员站长
2022/09/15
3.4K0
5、web爬虫,scrapy模块,解决重复ur——自动递归url
一般抓取过的url不重复抓取,那么就需要记录url,判断当前URL如果在记录里说明已经抓取过了,如果不存在说明没抓取过
天降攻城狮
2019/07/04
1K0
5、web爬虫,scrapy模块,解决重复ur——自动递归url
LeetCode 1568. 使陆地分离的最少天数(DFS)
给你一个由若干 0 和 1 组成的二维网格 grid ,其中 0 表示水,而 1 表示陆地。 岛屿由水平方向或竖直方向上相邻的 1 (陆地)连接形成。
Michael阿明
2021/02/19
4070
汉诺塔问题
学递归,跳不过汉诺塔这个程序。以前弄NOIP,老师很详细地讲过汉诺塔的原理以及实现算法,不过我上大学了却发现老师讲到汉诺塔,只是像一笔带过,原理都没讲通,更别说算法了。我相信像他那么讲,没一个同学(没基础的)能弄得懂,就算你给一个flash汉诺塔的游戏,也不见得会玩。
phith0n
2020/10/16
1.2K0
汉诺塔问题
js下一页_不解压查看gz文件
ZK Developer’s Reference文档,章节为Minimize Number of JavaScript Files to Load,按照文档步骤执行,最后需在
全栈程序员站长
2022/09/20
1.7K0
js下一页_不解压查看gz文件
Hanoi单塔问题
The Towers of Hanoi is one of the most famous classic problems every budding computer scientist must  grapple with . Legend has it that in a temple in the Far East , priests are attempting to move a stack of  golden disks from one diamond peg to another . The initial stack has 64 disks threaded onto  one peg and arranged from bottom to top by decreasing size . The priests are attempting to move the stack  from one peg to another under the constraints that exactly one disk is moved at a time and at no time may a larger disk be placed above a smaller disk . Three pegs are provided , one being used for temporarily  holding disks . Supposedly , the world will end when the priests complete their task , so there is little  incentive for us to facilitate their efforts .
灯珑LoGin
2022/10/31
5350
Hanoi单塔问题
点击加载更多

相似问题

Scrapy crawler不会递归爬行下一页

10

Scrapy -递归地抓取到第三页

20

如何使Scrapy只爬行1页(使其非递归)?

30

下一页的Xpath - Scrapy

215

使用scrapy递归地爬行站点

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文