问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-23 06:21

我来回答

1个回答

热心网友 时间:2022-04-18 03:23

(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方法会自动获取里面的请求
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
弹钢琴时手指速度总是不自觉变快怎么办? 弹钢琴时速度总是不自觉变快怎么办? 微信发表情包上限是多少 ...8.0.3版本更新什么?微信表情包上限变成999是什么 成人毛线斗篷式开襟披肩编织 江苏洛社商贸城项目有哪些主要特点和设施? 永明镇的乡镇建设 蓝光花满庭小区基本信息 洛社商贸城项目概括 怀孕了能不能吃汤圆 【急】隐形眼镜怎么区分正反? 中国移动网上营业厅都能干什么? Python小白求助 爬虫 图中的anchor是怎么传到 def __sort_seed方法中的... Win7系统启动蓝屏,出现0x00000069故障。如何解决? 请问艾爵的隐形眼镜怎么样?我想网购 哪里比较实惠? 大家都用什么音乐播放器啊??? 对中国移动门户的发展建议 python 写爬虫如何实现for xrange 字典一起使用 买了两幅一样度数的*眼镜 一副是艾爵 一副博士伦 不过为什么博士伦戴起来模糊呢? python爬虫怎么写循环爬取多个页面 网上营业厅和手机营业厅有什么区别 艾爵隐形眼镜好不好? 什么是移动门户? Python爬虫爬取图片这个报错怎么处理? 艾爵隐形眼镜在使用的过程中需要怎么保养? 艾爵隐形眼镜质量怎么样 苹果手机用什么音乐播放器? 练习写用python写爬虫,可是不知道怎么用循环来让文章一一对应。 艾爵隐形眼镜有哪些注意事项呢? python for循环什么时候停止 中国移动网上营业厅都能干什么呀?? 电脑上次冷关机之后再开机就蓝屏了,错误代码0×00000069,而且无法进入... 全网门户和移动门户是什么关系? 苹果手机用那一个音乐播放器好? 有没有易懂的 Python 多线程爬虫代码 中企动力移动门户为什么叫门户呢?和通常意义上的门户网站有什么区别? python 怎么一边运行一边打印结果 电脑老是蓝屏怎么办啊 电脑不停蓝屏怎么办?跪求大侠帮忙! 这个蓝屏怎么回事 手机上安装自己企业的移动门户,主要有什么用 啊? 电脑昨天一直蓝屏显示进程错误 今天也一样。哭了。求助 登陆北京移动门户网站办理业务所需的帐号和密码指什么 企业移动门户app主要有哪些功能 电脑蓝屏了!求助! 系统出现蓝屏...急,,,请进 在移动网上营业厅买手机,和在网上买的有什么不同 求救:我的电脑老是出现蓝屏,很频繁!谢谢各位大虾啊 新电脑怎么装win7系统 电脑蓝屏怎么回事啊