如何在scrapy框架下,用python实现爬虫自动跳转页面来抓去网页内容

如题所述

(1)一种是像我之前爬虫新京报网的新闻,下一页的url可以通过审查元素获得,第一页的网址是http://www.bjnews.com.cn/news/list-43-page-1.html
在第一页的时候,下一页按钮的审查元素是

我们通过获取next_pages = response.xpath('//div[@id="page"]/a[@class="next"]/@href').extract()[0]
,便可以得到下一页的url,next_page = "http://www.bjnews.com.cn" + next_pages,

这一部分的完整代码为:

page_link=set() #保存下一页页面url

content_link=set() #保存页面内所有可获得的url

rules={'page':LinkExtractor(allow=(r'^http://www.bjnews.com.cn/\w+/2016/\d{2}/\d{2}/\d{6}.html
))}

start_urls={'http://www.bjnews.com.cn/news/list-43-page-1.html'}

def parse(self, response):

#爬取一个页面内的所有url链接

    for link in self.rules['page'].extract_links(response):

        if link.url not in self.content_link:

            self.page_link.add(link.url)

            yield scrapy.Request(link.url, callback=self.parse_item)

#自动获取下一页的url

    next_pages = response.xpath('//div[@id="page"]/a[@class="next"]/@href').extract()[0]

    if next_pages:

        next_page = "http://www.bjnews.com.cn" + next_pages

        self.page_link.add(next_page)

        yield scrapy.Request(next_page, callback=self.parse)

(2)第二种情况,就是在下一页的审查元素中没有提供url链接,需要自己分析,在这里依然举个例子,比如搜狐新闻http://news.sohu.com/guojixinwen.shtml,该页中下一页按钮的审查元素是:

我们不能通过href来直接过得下一页的url,需要自己手动获得,那现在我们来分析

第二页的url:http://news.sohu.com/guojixinwen_5230.shtml,第三页的http://news.sohu.com/guojixinwen_5229.shtml,最后一页的http://news.sohu.com/guojixinwen_5132.shtml,由此可以分析出这一共100页的url,是http://news.sohu.com/guoneixinwen_"+i+".shtml",其中i是从5230到5132倒序排列的,也就是说通过for循环,就可以获得这100页的所有url,完整代码如下:在这里给大家加一个新的方法的使用start_request,该方法就是子定义start_urls,把所有自定义的url放到page_link中,self.make_requests_from_url方法会自动获取里面的请求
温馨提示:内容为网友见解,仅供参考
无其他回答

如何在scrapy框架下,用python实现爬虫自动跳转页面来抓去网页内容??
下载器中间件(Downloader middlewares):是在引擎即下载器之间的特定钩子(special hook),处理Downloader传递给引擎的Response。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能(后面会介绍配置一些中间并激活,用以应对反爬虫)。Spider中间件(Spider middlewares):是在引擎及Spider之间的特...

如何在scrapy框架下,用python实现爬虫自动跳转页面来抓去网页内容??
爬虫跟踪下一页的方法是自己模拟点击下一页连接,然后发出新的请求。请看:item1 = Item()yield item1item2 = Item()yield item2req = Request(url='下一页的链接', callback=self.parse)yield req 注意使用yield时不要用return语句。

python爬虫的工作步骤
1.如下图所示,爬虫从编写的spider文件中的start_urls开始,这个列表中的url就是爬虫抓取的第一个网页,它的返回值是该url对应网页的源代码,我们可以用默认的parse(self,response)函数去打印或解析这个源代码 2.我们获取到源代码之后,就可以从网页源代码中找到我们想要的信息或需要进一步访问的url,提取...

python爬取网站数据需要多久(python批量爬取网页数据)
深度优先的网页爬取方案是:给定初始url,爬取这个网页中所有url,继续对网页中的url递归爬取。代码逐段解析在下面,方便自己以后回顾。1.建一个scrapy工程:关于建工程,可以参看这个scrapy入门教程,通过运行:[python]viewplaincopy scrapystartproject 在当前目录下建一个scrapy的项目,然后在spiders的子目录...

怎么将scrapy开发的爬虫程序打包_Python如何安装scrapy
scrapy是目前非常热门的一种爬虫框架,它把整个爬虫过程分为了多个独立的模块,并提供了多个基类可以供我们去自由扩展,让爬虫编写变得简单而有逻辑性。并且scrapy自带的多线程、异常处理、以及强大的自定义Settings也让整个数据抓取过程变得高

Windows上面安装Python的scarpy框架
第一步:当然是安装python了,本人安装的是2.7.3版本;可以到python的官网下载然后双击运行,一路“下一步”即可完成安装。安装好后,将python的安装目录添加到系统变量中,这样才能够在控制台中输入python进入,如下图所示则说明安装python成功了 第二步:按照官网的提示,我们先安装pywin32,在这里点击...

如何用Python爬取数据?
方法\/步骤 在做爬取数据之前,你需要下载安装两个东西,一个是urllib,另外一个是python-docx。请点击输入图片描述 然后在python的编辑器中输入import选项,提供这两个库的服务 请点击输入图片描述 urllib主要负责抓取网页的数据,单纯的抓取网页数据其实很简单,输入如图所示的命令,后面带链接即可。请点击...

毕业生必看Python爬虫上手技巧
以下是一些Python爬虫上手技巧:1. 学习基础知识:了解Python的基本语法和常用库,如requests、BeautifulSoup、Scrapy等。2. 确定目标网站:选择您要爬取数据的目标网站,并了解其网页结构和数据分布。3. 分析网页结构:使用浏览器开发者工具或其他工具,分析目标网站的网页结构,找到需要爬取的数据所在的位置和对应的HTML标签。

Python网页爬虫工具有哪些?
3、 Python-Goose Goose最早是用Java写得,后来用Scala重写,是一个Scala项目。Python-Goose用Python重写,依赖了Beautiful Soup。给定一个文章的URL, 获取文章的标题和内容很方便,用起来十分nice。关于Python网页爬虫工具有哪些,环球青藤小编就和大家分享到这里了,学习是永无止境的,学习一项技能更是受益...

python爬网页耗时多少
1.学习Python基础知识并实现基本的爬虫过程 一般获取数据的过程都是按照发送请求-获得页面反馈-解析并且存储数据这三个流程来实现的。这个过程其实就是模拟了一个人工浏览网页的过程。Python中爬虫相关的包很多:urllib、requests、bs4、scrapy、pyspider等,我们可以按照requests负责连接网站,返回网页,Xpath用于...

相似回答