爬虫解析器之xpath学习

    技术2023-11-02  112

    文章目录

    why xpath?模板1很好的学习资料试着使用xPath Helper排坑经验

    why xpath?

    网络爬虫四大选择器大概有正则表达式、BeautifulSoup、Xpath、CSS,Bs4总觉得要写很多指令很麻烦,决定学习一门其他的方法。 https://www.cnblogs.com/dcpeng/p/12985344.html推荐了lxml,也就是学习xpath规则。

    模板1

    scrapy 爬取图片 最基本操作 这个是用css的方法写的,经检验可以爬取成功。这个template给了爬取两点经验:

    如何设置settings里面的存储路径如何设置pipeline里面的具体存储

    之后呢,我觉得可以用这个做来练手改成xpath路径的练习。 更改前

    def parse(self, response): item = MeizituItem() srcs = response.css('.article img::attr(src)').extract() # css提取 print(srcs) item['image_urls'] = srcs yield item def parse(self, response): item = MeizituItem() srcs = response.xpath('/html/body/div[@class="wrapper-box"]/div[@id="article-container"]/div[@class="left main"]/div[1]/div[@class="text"]/article[@id="mp-editor"]/p/img/@src').extract() # xpath提取 print(srcs) item['image_urls'] = srcs yield item

    很好的学习资料

    python3解析库lxml

    试着使用xPath Helper

    谷歌浏览器安装xpath使用

    排坑经验

    xpath的最外层应该是单引号,里面的文字应该是双引号 src_list = response.xpath('//div[@class="liststyle1_w clearfix"]/div[@id="listtyle1_w"]/div[@id="listtyle1_list"]//div[@class="listtyle1"]/a[@class="big"]/img[@class="img"]/@src').extract() 爬取图片的时候应该把图片的url放到list里面 爬取图片过程遇到的ValueError: Missing scheme in request url: h 报错与解决方法 原来的代码 def parse(self, response): list1 = [] src_list = response.xpath('//div[@class="liststyle1_w clearfix"]/div[@id="listtyle1_w"]/div[@id="listtyle1_list"]//div[@class="listtyle1"]/a[@class="big"]/img[@class="img"]/@src').extract() for src in src_list: item = FoodItem() item['image_urls'] = src yield item

    更改以后

    def parse(self, response): list1 = [] src_list = response.xpath('//div[@class="liststyle1_w clearfix"]/div[@id="listtyle1_w"]/div[@id="listtyle1_list"]//div[@class="listtyle1"]/a[@class="big"]/img[@class="img"]/@src').extract() for src in src_list: list1.append(src) item = FoodItem() item['image_urls'] = list1 yield item
    Processed: 0.010, SQL: 9