- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
手把手教你用Scrapy爬虫框架爬取食品论坛数据并存入数据库
网络爬虫(又称为网页蜘蛛,网络机器人),是一种依据肯定的规章,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模仿程序或者蠕虫。百度百科
????说人话就是,爬虫是用来海量规章化猎取数据,然后进行处理和运用,在大数据、金融、机器学习等等方面都是必需的支撑条件之一。
????目前在一线城市中,爬虫的岗位薪资待遇都是比较客观的,之后提升到中、高级爬虫工程师,数据分析师、大数据开发岗位等,都是很好的过渡。
二、项目目标
????本此引见的项目其实不用想的太过简单,最终要实现的目标也就是将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止反复爬取,反爬等措施。
三、项目预备
这部分次要是引见本文需要用到的工具,涉及的库,网页等信息等
软件:PyCharm
需要的库:Scrapy, selenium, pymongo, user_agent,datetime
目标网站:
插件:chromedriver(版本要对)
四、项目分析
1、确定爬取网站的结构
????简而言之:确定网站的加载方式,怎样才能正确的一级一级的进入到帖子中抓取数据,使用什么格式保存数据等。
????其次,观看网站的层级结构,也就是说,怎样依据板块,一点点进入到帖子页面中,这对本次爬虫任务格外重要,也是次要编写代码的部分。
2、如何选择合适的方式爬取数据?
????目前我晓得的爬虫方法或许有如下(不全,但是比较常用):
????1)request框架:运用这个http库可以很机警的爬取需要的数据,简约但是过程略微繁琐,并且可以协作抓包工具对数据进行猎取。但是需要确定headers头以及相应的恳求参数,否则无法猎取数据;很多app爬取、图片视频爬取随爬随停,比较轻量机警,并且高并发与分布式部署也格外机警,对于功能可以更好实现。
????2)scrapy框架:scrapy框架可以说是爬虫最常用,最好用的爬虫框架了,优点很多:scrapy 是异步的;实行可读性更强的 xpath 代替正则;强大的统计和 log 系统;同时在不同的 url 上爬行;支持 shell 方式,便利独立调试;支持写 middleware便利写一些统一的过滤器;可以通过管道的方式存入数据库等等。这也是本次文章所要引见的框架(结合selenium库)。
五、项目实现
1、第一步:确定网站类型
????首先解释一下是什么意思,看什么网站,首先要看网站的加载方式,是静态加载,还是动态加载(js加载),还是别的方式;依据不一样的加载方式需要不同的方法应对。然后我们观看今日爬取的网站,发觉这是一个有年月感的论坛,首先猜想是静态加载的网站;我们开启组织 js 加载的插件,如下图所示。
????刷新之后发觉的确是静态网站(假如可以正常加载基本都是静态加载的)。
2、其次步:确定层级关系
????其次,我们今日要爬取的网站是食品论坛网站,是静态加载的网站,在之前分析的时候已经了解了,然后是层级结构:
?
????或许是上面的流程,总共有三级递进访问,之后到达帖子页面,如下图所示。
部分代码呈现:
????一级界面:
def parse(self, response):
(已进入网页!)
(正在猎取版块列表!)
column_path_list = response.css(#ct div.mn div:nth-child(2) div)[:-1]
for column_path in column_path_list:
col_paths = column_path.css(div table tbody tr td div a).xpath(@href).extract()
for path in col_paths:
block_url = response.urljoin(path)
yield scrapy.Request(
url=block_url,
callback=self.get_next_path,
)
????二级界面:
def get_next_path(self, response):
(已进入版块!)
(正在猎取文章列表!)
if response.url == /know/:
pass
else:
try:
nums = response.css(#fd_page_bottom div
您可能关注的文档
最近下载
- PLC应用技术(西门子S7-1200)全套教学课件.pptx VIP
- 宿州市市直机关遴选公务员考试真题2024.docx VIP
- GBT 35694-2017 光伏发电站安全规程.pdf
- DB41T 2312-2022 波形钢腹板预应力混凝土组合箱梁桥施工规范.pdf VIP
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- 胃肠道肿瘤的基因检测与个体化治疗.pptx VIP
- 部编版语文四年级上册第二单元综合素质测评B卷(含答案).pdf VIP
- 《道路深层病害探地雷达无损检测技术规范》DB41 T2525-2023.doc VIP
- 中国儿童幽门螺杆菌感染诊治专家共识(2022) .pdf
- 2021届广东省华师附属高级中学(广州总校)三下学期5月综合测试(三模)文科综合地理试卷无答案.pdf VIP
文档评论(0)