首页 > 编程知识 正文

scrapy框架运行流程,爬虫scrapy流程

时间:2023-05-04 15:47:49 阅读:30873 作者:2489

[Scrapyweb爬虫框架提供了“scrapy教程4]scrapy框架的重要CSS位置元素方法文章中共享的CSS (方法)方法,并提供了web元素(元素)

XPath(XMLpathlanguage )是一种使用类似文件路径的语法来查找XML文档中的特定()节点)的语言,并且可以有效地查找节点)的位置,从而使pythonweb爬虫元素(例如

本文继续使用“Scrapy教程4”中如何了解Scrapy框架的关键CSS定位元素的文章中的INSIDE硬塞网站趋势观察网站-AI新闻,在Scrapy框架中重点内容:

Scrapy XPath方法获取单个元素值

Scrapy XPath方法获取多个元素值

Scrapy XPath方法获取子元素的值

Scrapy XPath方法获取元素的属性值

另一方面,Scrapy XPath方法要获得单个元素值,首先打开INSIDE硬插件web趋势观察网站-AI新闻页,在文章标题处单击鼠标快捷方式,然后选择“检查”

如果用XPath语法指定此标记的位置,则语法类似于文件路径,如下例所示。

//a [ @ class=' js-auto _ break _ title ' ]表示根目录下的标签,通过在“@ class=’”中指定其样式类别(class )来定义文章标题

然后,打开[Scrapyweb爬虫项目,该项目了解“scrapy教程4]scrapy框架中的关键CSS位置元素项目,并在spiders/inside.py中使用parse (方法) memeta

进口沙皮刮痧y的类insidespider(scrapy。 蜘蛛(名称=“内部”allowed _ domains=[ ' www.inside.com.tw ' ] start _ URLs=[ ' 3359 www.inside.com.tw/tag/Tata ) (打印)标题)后,通过以下命令运行insideweb爬虫:

$ scrapy进去执行结果

微软新专利:和《黑镜》一样的模拟真人聊天AI! AI! 在上例的第11行中,在XPath路径的末尾添加关键字“/text (”,get ) )方法(Method ),以便使用XPath路径导航到要滚动的标签,然后检索其中web内容的文本

第二,要使用Scrapy XPath (方法)获取多个元素值(使用Scrapy XPath (方法) ),请使用XPath路径导航到要滚动的网页的元素标记,如下例所示)

进口沙皮刮痧y的类insidespider(scrapy。 蜘蛛(名称=“内部”allowed _ domains=[ ' www.inside.com.tw ' ] start _ URLs=[ ' 3359 www.inside.com.tw/tag/Tata ) 获取全部(打印)标题)执行结果

[ '微软新专利:和《黑镜》一样的模拟真人聊天AI! ”,'微软新专利:和《黑镜》一样的模拟真人聊天AI! ”、“【臂专栏】人工智能:云、rqdsc与终端人工智能”、“【臂专栏】人工智能:云、rqdsc与终端人工智能”、“2021台北游戏展将以新形态登场:虚实同步布局”、“ AI可以检测到亚马逊雨林生态中非法道路的增减”、“发酵王! 谷歌AI没有烤。 首先推测你的配方会是什么食物,混种甜点“breakie”、“cakie”、“烘烤! 谷歌ai在烤前猜测你的配方会是什么食物,更混种甜点“breakie”、“cakie”、“她在数据上战胜人性,主推近似套餐一年后用户会翻倍”、“她会德你知道主推近似课程一年后用户翻七倍”,“【有线硬插头】你知道的银河历史,”,“【有线硬插头】银河历史,被改写了吗? ”、“dl

dlz放弃新年愿望!2020过的好吗?盘点脸书满城风雨的一年”,“dldlz放弃新年愿望!2020过的好吗?盘点脸书满城风雨的一年” ,......]]

从执行结果可以看到,getall()方法(方法)会回传一个串列(List),包含所有样式类别(class)为“ js-auto_break_title ”的标签标题文字,接下来,就需要透过回圈来进行读取,如下范例:

进口沙皮 刮y的类InsideSpider (scrapy 。蜘蛛): 名称= “内部” allowed_domains = [ 'www.inside.com.tw' ] start_urls = [ 'https://www.inside.com.tw/tag/ai' ] def parse (self ,response ): 标题=回应。xpath ( “ // a [@ class ='js-auto_break_title'] / text()” )。getall () 为标题在标题: 打印(标题)

执行结果

微软新专利:跟《黑镜》一样的模拟真人聊天AI!AI !【手臂专栏】一次看懂人工智慧:云端,rqdsc与终端人工智慧【Arm专栏】一次看懂人工智慧:云端,rqdsc与终端人工智慧 2021台北电玩展以新形态亮相:虚实同步布局2021台北电玩展以新形态亮相:虚实同步布置 用科技保护环境!AI可侦测亚马逊雨林生态中非法道路的增减用科技保护环境!AI可侦测亚马逊雨林生态中非法道路的增减烘焙王!Google AI未烤先猜你的配方会变什么食物,更创造混种甜点「breakie」,「cakie」烘焙王!Google AI未烤先猜你的配方会变什么食物,更创造混种甜点「breakie 」,「cakie 」她用数据战胜人性,主推疗法课程一年后用户翻七倍她用数据战胜人性,主推疗法课程一年后用户翻七倍【有线硬塞】你知道银河系的历史,已被重新改写了吗?【有线硬塞】你知道银河系的历史,已被重新改写了吗?2020年过的好吗?盘点脸书满城风雨的一年dldlz放弃新年愿望!2020过的好吗?盘点脸书满城风雨的一年 ......

本文使用的get()及getall()方法(方法),和[Scrapy教学4]掌握Scrapy框架重要的CSS定位元素方法文章一样为Scrapy官方的新版使用方式,而旧版的extract_first()及extract( )方法(方法),依据以下的官方文件说明,依然支持,不过还是建议读者可以使用新版的方法(方法),紧密配合以性。


三,Scrapy XPath方法获取子元素值
在开发Python网页爬虫时,有很常的机率会需要透过逐层的方式,往下定位所要爬取的子元素(Element),这时候Scrapy xpath()方法(Method)中,所取代的XPath以标签的HTML原始码为例,如下图:

假设我们想从

标签,逐层往下定位到 标签,XPath路径就会像以下范例第11行:

进口沙皮 刮y的类InsideSpider (scrapy 。蜘蛛): 名称= “内部” allowed_domains = [ 'www.inside.com.tw' ] start_urls = [ 'https://www.inside.com.tw/tag/ai' ] def parse (self ,response ): 标题=回应。xpath ( “ // div [@ class ='post_list_item_content'] / h3 [@ class ='post_title'] / a / text()” )。getall () 为标题在标题: 打印(标题)

执行结果

微软新专利:跟《黑镜》一样的模拟真人聊天AI!AI !【手臂专栏】一次看懂人工智慧:云端,rqdsc与终端人工智慧【Arm专栏】一次看懂人工智慧:云端,rqdsc与终端人工智慧 2021台北电玩展以新形态亮相:虚实同步布局2021台北电玩展以新形态亮相:虚实同步布置 用科技保护环境!AI可侦测亚马逊雨林生态中非法道路的增减用科技保护环境!AI可侦测亚马逊雨林生态中非法道路的增减烘焙王!Google AI未烤先猜你的配方会变什么食物,更创造混种甜点「breakie」,「cakie」烘焙王!Google AI未烤先猜你的配方会变什么食物,更创造混种甜点「breakie 」,「cakie 」她用数据战胜人性,主推疗法课程一年后用户翻七倍她用数据战胜人性,主推疗法课程一年后用户翻七倍【有线硬塞】你知道银河系的历史,已被重新改写了吗?【有线硬塞】你知道银河系的历史,已被重新改写了吗?2020年过的好吗?盘点脸书满城风雨的一年dldlz放弃新年愿望!2020过的好吗?盘点脸书满城风雨的一年 ...... 四,Scrapy XPath方法获取元素属性值

Python网页爬虫除了能够爬取网页上显示的内容外,也可以获取网页元素(元素)的属性值,表示来说,像是图片的src源属性值或超连结的href网址属性值等,这时候,就需要在Scrapy框架的xpath()方法(方法)最后,加上“ @属性名称”,如下范例:

进口沙皮 刮y的类InsideSpider (scrapy 。蜘蛛): 名称= “内部” allowed_domains = [ 'www.inside.com.tw' ] start_urls = [ 'https://www.inside.com.tw/tag/ai' ] def parse (self ,response ): 标题=回应。xpath ( “ // a [@ class ='js-auto_break_title'] / @ href” )。getall () 为标题在标题: 打印(标题)

执行结果

https://www.inside.com.tw/article/22257-Microsoft-Wants-to-Turn-You-In-a-Black-Mirror-Style-Chatbot-After-Death://www.inside.com.tw/article/22257-Microsoft-Wants-to-Turn-You-to-a-Black-Mirror-Style-Chatbot-After-Deathhttps://www.inside.com.tw/article/22234-arm-AI-explained://www.inside.com.tw/article/22234-arm-AI-explainedhttps://www.inside.com.tw/article/22254-2021-TGS://www.inside.com.tw/article/22254-2021-TGShttps://www.inside.com.tw/article/22208-artificial-intelligence-finds-hidden-roads-threatening-amazon-ecosystems://www.inside.com.tw/article/22208-artificial-intelligence-finds-hidden-roads-threatening-amazon-ecosystemshttps://www.inside.com.tw/article/22196-google-ai-concocts-breakie-and-cakie-hybrid-baked-goods://www.inside.com.tw/article/22196-google-ai-concocts-breakie-and-cakie-hybrid-baked-goodshttps://www.inside.com.tw/article/22222-sofasoda-growth-in-tech-2021://www.inside.com.tw/article/22222-sofasoda-growth-in-tech-2021https://www.inside.com.tw/article/22194-The-Milky-Way-Gets-a-New-Origin-Story://www.inside.com.tw/article/22194-The-Milky-Way-Gets-a-New-Origin-Storyhttps://www.inside.com.tw/article/22057-psddx-Zuckerberg-and-fb-2020://www.inside.com.tw/article/22057-psddx-Zuckerberg-and-fb-2020......

以上范例,即是爬取所有样式类别(class)为“ js-auto_break_title ”的标签href属性值,也就是文章标题的网址。

五,小结
本文简单示范了Scrapy框架的另一个定位元素方法

取得单一元素值呼叫get()方法(方法)
取得多个元素值呼叫getall()方法(方法)
取得文字内容,加上「/ text()」关键字
取得属性值则加上「@属性名称」关键字
大家可以试着练习利用这里所分享的Scrapy xpath()方法(方法),以及[Scrapy教学4]掌握Scrapy框架重要的CSS定位元素方法文章的css()方法(方法),来爬取想要的网页内容,相信对于想要入门Scrapy框架来开发Python网页爬虫的朋友,能够快速上手。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。