社区首页 >问答首页 >使用scrapy查找正确的分页选择器

使用scrapy查找正确的分页选择器
EN

Stack Overflow用户
提问于 2019-01-18 08:38:04
回答 2查看 398关注 0票数 0

我试着从这个论坛中提取数据:

https://schwangerschaft.gofeminin.de/forum/all

我从第一页获取数据。我使用css选择器'li.selected > a::attr(href)'不幸的是,我不能从其他页面获得所有其他数据。

xpath或css选择器的正确分页路径是什么?

Python:

代码语言:javascript
代码运行次数:0
复制
import scrapy

class ForumSpider(scrapy.Spider):
    name = "pregnancy"

    def start_requests(self):
        url = 'https://schwangerschaft.gofeminin.de/forum/all'
        yield scrapy.Request(url, self.parse)


    def parse(self, response):
        for thread in response.css('div.af-thread-item'):
            yield{
                'threadTitle': thread.css('span.thread-title::text').extract_first(),
                'username': thread.css('div.user-name::text').extract_first()
            }
        next_page = response.css('li.selected > a::attr(href)').extract_first()
        if next_page is not None:
            yield scrapy.Request(response.urljoin(next_page))

HTML:

代码语言:javascript
代码运行次数:0
复制
<nav class="af-pagination " role="navigation"><ul><li class="selected">
<a href="https://schwangerschaft.gofeminin.de/forum/all">1</a></li><li>
<a href="https://schwangerschaft.gofeminin.de/forum/all/p2">2</a></li><li>
<a href="https://schwangerschaft.gofeminin.de/forum/all/p3">3</a></li><li>
<a href="https://schwangerschaft.gofeminin.de/forum/all/p4">4</a></li><li>
<a href="https://schwangerschaft.gofeminin.de/forum/all/p5">5</a></li><li>
<a href="https://schwangerschaft.gofeminin.de/forum/all/p6">6</a></li><li>
<a href="https://schwangerschaft.gofeminin.de/forum/all/p7">7</a></li><li>
<a href="https://schwangerschaft.gofeminin.de/forum/all/p8">8</a></li><li>
...

下一页链接:https://schwangerschaft.gofeminin.de/forum/all/p2

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-18 08:39:54

尝试response.css('link[rel=next]::attr(href)').get(),这应该可以工作。

票数 1
EN

Stack Overflow用户

发布于 2019-01-18 09:02:15

考虑到这个网站导航栏的构建方式,我喜欢在这些情况下使用xpath。假设当前页面将有一个"selected“类,我将选择"selected”类,然后使用索引为1的“following sibling”语法来获得下面的标记。

在您的案例中:

代码语言:javascript
代码运行次数:0
复制
response.xpath("//li[@class='selected']/following-sibling::li[1]/a/@href").extract_first()

所以无论你在哪个页面,你都会动态地选择“下一页”。

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

https://stackoverflow.com/questions/54250214

复制
相关文章
Scrapy选择器的用法
1.构造选择器: >>> response = HtmlResponse(url='http://example.com', body=body) >>> Selector(response=response).xpath('//span/text()').extract() [u'good'] 2.使用选择器(在response使用xpath或CSS查询): .xpath() 及 .css() 方法返回一个类 SelectorList 的实例, 它是一个新选择器的列表。 >>> response.xpat
希希里之海
2018/05/16
6790
scrapy选择器css
CSS是网页代码中非常重要的一环,即使不是专业的Web从业人员,也有必要认真学习一下
py3study
2018/08/02
4980
scrapy选择器xpath
Scrapy提取数据有自己的一套机制,它们被称作选择器(seletors),通过特定的Xpath或者css表达式来"选择"html文件中的某个部分。
py3study
2018/08/02
6020
Scrapy CSS选择器
官方文档的CSS选择器太简短,整理了一个比较全的。 * 选择所有节点 #container 选择id为container的节点 .container 选择所有class包含container的节点 li a 选取所有li 下
SeanCheney
2018/04/24
6470
Python爬虫 --- 2.2 Scrapy 选择器的介绍
Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分 Xpath是专门在XML文件中选择节点的语言,也可以用在HTML上。 CSS是一门将HTML文档样式化语言,选择器由它定义,并与特定的HTML元素的样式相关联。而且这些选择器构造于‘lxml’之上,这就意味着Scrapy框架下的数据筛选有着很高的效率。
緣來
2018/09/18
5340
Python爬虫 --- 2.2 Scrapy 选择器的介绍
​ Python爬虫 --- 2.2 Scrapy 选择器的介绍
原文链接:https://www.fkomm.cn/article/2018/8/2/27.html
圆方圆PYTHON学院
2018/12/19
5830
​ Python爬虫 --- 2.2 Scrapy 选择器的介绍
Python Scrapy框架之Selector选择器
对用爬取信息的解析,我们在之前已经介绍了正则re、Xpath、Beautiful Soup和PyQuery。 而Scrapy还给我们提供自己的数据解析方法,即Selector(选择器)。 Select
Python知识大全
2020/02/13
1.1K0
Python Scrapy框架之Selector选择器
一日一技:如何正确使用 Scrapy 自带的 FilesPipeline?
Scrapy自带的 FilesPipeline和ImagesPipeline用来下载图片和文件非常方便,根据它的官方文档[1]说明,我们可以很容易地开启这两个 Pipeline。
青南
2021/01/05
2.8K0
一日一技:如何正确使用 Scrapy 自带的 FilesPipeline?
一日一技:使用Scrapy的选择器来解析HTML
在使用Scrapy抓取网站的时候,可能会遇到这样的情况,网站返回一个JSON字符串。在JSON字符串中又有一项,它的值是HTML。
青南
2019/01/09
1.8K0
Scrapy框架的使用之Scrapy入门
接下来介绍一个简单的项目,完成一遍Scrapy抓取流程。通过这个过程,我们可以对Scrapy的基本用法和原理有大体了解。 一、准备工作 本节要完成的任务如下。 创建一个Scrapy项目。 创建一个Spider来抓取站点和处理数据。 通过命令行将抓取的内容导出。 将抓取的内容保存的到MongoDB数据库。 二、准备工作 我们需要安装好Scrapy框架、MongoDB和PyMongo库。 三、创建项目 创建一个Scrapy项目,项目文件可以直接用scrapy命令生成,命令如下所示: scrapy st
崔庆才
2018/06/25
1.3K0
Scrapy实战6:CSS选择器实战训练
上一篇文章Scrapy实战5:Xpath实战训练中给大家讲解并带着大家实战训练了Xpath,爬取了伯乐在线文章的基本信息,并且介绍scrapy里的shell调试模式使用,还是很实用的哈。
龙哥
2020/02/12
1K0
Scrapy框架| 选择器-Xpath和CSS的那些事
这次接着上一篇文章来讲Scrapy框架,这次讲的是Scrapy框架里面提供的两种数据提取机制Xpath和CSS,其实除了这两种,我们还可以借助第三方库来实现数据的提取,例如:BeautifulSoup(这个在我的爬虫系列文章中有写过)和lxml(Xml解析库),Scrapy选择器是基于lxml库之上的,所以很多地方都是和lxml相似的。
Python进击者
2019/06/21
1.3K0
Scrapy1.6 爬虫框架3 分页处理
今天我们来爬取专供初学者练习爬虫的网站 http://books.toscrape.com/ 这是一个图书网站,默认有50页,每页会展示20本书,我们要一次性把所有图书的标题和价格全部抓取下来。
mafeifan
2019/06/11
1.1K0
Scrapy1.6 爬虫框架3 分页处理
2019-11-10-使用StringInfo正确查找字符个数
之前在处理文本的时候遇到过这样的一个问题,有的字,它看着是一个,但是程序说他是两个,但是实际真的是一个。 好吧,你们一定没有听懂我在讲什么。没关系一起来看看代码
黄腾霄
2020/06/10
3850
scrapy的简单使用
使用之前的创建虚拟环境方法(pipenv) 创建虚拟环境并进入虚拟环境 mkdir douban cd douban pipenv install pipenv shell 再安装我们的scrapy pipenv install scrapy 然后创建项目 scrapy startproject doubanmovie cd doubanmovie scrapy genspider douban_movie (这里加入你想要爬的网站url) 再使用pychram打开这个目录 写好代码后在pycharm下方
py3study
2020/01/24
5010
Scrapy框架的使用之Scrapy对接Selenium
Scrapy抓取页面的方式和requests库类似,都是直接模拟HTTP请求,而Scrapy也不能抓取JavaScript动态渲染的页面。在前文中抓取JavaScript渲染的页面有两种方式。一种是分析Ajax请求,找到其对应的接口抓取,Scrapy同样可以用此种方式抓取。另一种是直接用Selenium或Splash模拟浏览器进行抓取,我们不需要关心页面后台发生的请求,也不需要分析渲染过程,只需要关心页面最终结果即可,可见即可爬。那么,如果Scrapy可以对接Selenium,那Scrapy就可以处理任何
崔庆才
2018/06/25
2.4K0
Scrapy框架的使用之Scrapy框架介绍
Scrapy是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,可以灵活完成各种需求。我们只需要定制开发几个模块就可以轻松实现一个爬
崔庆才
2018/06/25
8410
Scrapy框架的使用
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 [1]
北山啦
2022/11/27
5310
scrapy的入门使用
请注意,本文编写于 1724 天前,最后修改于 993 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
6850
Scrapy框架的使用之Scrapy通用爬虫
通过Scrapy,我们可以轻松地完成一个站点爬虫的编写。但如果抓取的站点量非常大,比如爬取各大媒体的新闻信息,多个Spider则可能包含很多重复代码。 如果我们将各个站点的Spider的公共部分保留下来,不同的部分提取出来作为单独的配置,如爬取规则、页面解析方式等抽离出来做成一个配置文件,那么我们在新增一个爬虫的时候,只需要实现这些网站的爬取规则和提取规则即可。 本节我们就来探究一下Scrapy通用爬虫的实现方法。 一、CrawlSpider 在实现通用爬虫之前,我们需要先了解一下CrawlSpider
崔庆才
2018/06/25
2.6K0

相似问题

Scrapy-查找正确的CSS选择器

15

获取正确的分页的Scrapy Xpath

30

使用scrapy进行分页

12

如何使用scrapy进行分页

11

SCRAPY分页:无限滚动分页

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档