scrapy
文章平均质量分 58
python爬虫框架Scrapy
罗小爬EX
每天都在进步的IT男...
乐于分享技术经验,专注于前沿技术的探索,
目前就职于沈阳的IT软件架构师,擅长方向:Java、Spring、微服务、云原生、DDD。
展开
-
Scrapy-Splash使用中遇到的问题
一、html内容乱码解决方法:https://github.com/scrapinghub/splash/pull/102即在自定义的headers中包含 Accept-Encoding: gzib即会返回乱码的Html内容,最暴力的解决方案:移除自定义的Accept-Encoding原创 2021-03-22 15:56:04 · 1673 阅读 · 0 评论 -
Scrapy Splash
参考:https://splash.readthedocs.io/en/stable/https://github.com/scrapinghub/splashSplash是一个Javascript渲染服务(a javascript rendering service),1、可以很方便的通过Docker镜像启动,2、提供丰富Http Api接口(可替代Lua脚本的编写),3、基于Python3中Twisted和QT5实现,提供全异步(fully asynchronous)的渲染服务,且充分利用原创 2021-03-21 12:13:00 · 1216 阅读 · 0 评论 -
Scrapy集成Selenium ChromeDriver
官网chromedriverchromedriver-downloadsRunning Selenium Headless with Chrome安装chrome浏览器1、windows可通过 帮助->关于Google Chrome查看已安装的Chrome版本2、linuxTODO下载chromdriver下载链接:https://sites.google.com/a/chromium.org/chromedriver/downloads1、选择对应的版本2、选择对应的操作系原创 2021-03-19 09:17:13 · 2842 阅读 · 2 评论 -
Scrapy自定义设置
一、settings.py# 可直接再settings.py中自定义设置SVC_URL = 'http://localhost:8080/xx'然后在Scrapy中通过spider.settings来获取# 在spider中通过self.settingsself.settings.get('SVC_URL')# 在pipelines(获取其他组件中)中通过参数spider获取spider.settingsspider.settings.get('SVC_URL')可通过启动参数全局覆盖原创 2021-03-10 14:02:44 · 518 阅读 · 0 评论 -
Scrapy根据Url验证请求响应
参考链接:Scrapy-document-selector1. 打开shell界面(示例为Pycharm Terminal),执行scrapy shell {your_crawl_url}scrapy shell https://docs.scrapy.org/en/latest/_static/selectors-sample1.html如上scrapy shell示例返回完整Html如下:<html> <head> <base href='http://原创 2021-01-16 17:59:24 · 309 阅读 · 0 评论 -
Scrapy Css Selector扩展
参考:Scrapy-document-selectorto select text nodes, use ::textto select attribute values, use ::attr(name) where name is the name of the attribute that you want the value of转载 2021-01-16 17:05:02 · 142 阅读 · 0 评论 -
Scrapy Request重试
参考链接:scrapy自定义重试方法Retrying a Scrapy Request even when receiving a 200 status codedef parse(self, response): try: data = json.loads(response.text) except json.decoder.JSONDecodeError: next_retry = response.meta.get('retry_times',原创 2021-01-16 16:30:01 · 1021 阅读 · 0 评论 -
Scrapy验证response内容
例如CrawlSpider,可重写_parse(如下仅加入logging日志打印) def _parse(self, response, **kwargs): logging.info(f"【{self.data_source_name}】url={response.url}, response={response.text}") return self._parse_response( response=response,原创 2021-01-16 16:28:18 · 461 阅读 · 0 评论 -
scrapy CrawlSpider设置headers
参考:CrawlSpider带headers和cookies请求,解决302重定向和禁止访问问题通常在使用CrawlSpider时,可以指定rules,但却没有指定headers、cookies的地方,我们可以在start_requests通过scrapy.Request指定headers和cookies,但是之后CrawlSpider在根据rules爬取的link请求新页面时,是没有携带headers的(默认会记住并携带cookie),我这边遇到的情况就是初始请求通过start_requests设置h原创 2021-01-16 16:27:57 · 567 阅读 · 0 评论