28.用配合scrapy的方式爬取本地保存的html 您所在的位置:网站首页 scrapy能爬动态网页吗 28.用配合scrapy的方式爬取本地保存的html

28.用配合scrapy的方式爬取本地保存的html

2023-03-24 03:05| 来源: 网络整理| 查看: 265

使用splash抓取js动态加载的网页,输出网页源代码,以html的格式保存到本地,然后编写个py文件抓取自己想要的信息,又希望自己的抓取方式能够复用到scrapy-splash爬虫项目项目中。 可以使用下面的方式抓取本地的html文件:

# -*- coding: utf-8 -*- # @AuThor : frank_lee from scrapy.selector import Selector htmlfile = open("zfcaigou.html", 'r', encoding='utf-8') htmlhandle = htmlfile.read() pagedata = Selector(text=htmlhandle) infodata = pagedata.css(".items p") for infoline in infodata: city = infoline.css(".warning::text").extract()[0] issuescate = infoline.css(".warning .limit::text").extract()[0] title = infoline.css("a .underline::text").extract()[0] publish_date = infoline.css(".time::text").extract()[0] print(city+issuescate+publish_date)

首先说下网页源代码的获取: 下面这张图,对于已经安装splash的童鞋应该不陌生,在1处输入想要抓取的动态网页的网址,点一下2处。

稍等片刻,网页的返回结果就会呈现出渲染截图、HAR加载统计数据和网页的源代码。

将上图中方框内网页源代码保存到本地HTML文件里,用浏览器打开就可以像正常网页一样对其分析,抓取。如果觉得上面方式不够高级,配置一下scrapy的settings文件,和spiders下的文件只抓网页也是可以的,像下面这样,执行下,也会输出网页源代码。 # -*- coding: utf-8 -*- import scrapy from scrapy_splash import SplashRequest class ZfcaigouSpider(scrapy.Spider): name = 'zfcaigou' allowed_domains = ['www.zjzfcg.gov.cn'] start_urls = ['http://www.zjzfcg.gov.cn/purchaseNotice/index.html?categoryId=3001'] def start_requests(self): for url in self.start_urls: yield SplashRequest(url=url, callback=self.parse, args={'wait': 1}, endpoint='render.html') def parse(self, response): print(response.body.decode("utf-8")) pass

下面这张图片就是保存为html文件后 使用pycharm打开的,按下F12就可以对其进行分析了,使用文章开始处的代码就可以将我们需要的信息通过本地的html文件输出或保存。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有