python scrapy

2022-01-10 08:14:15 浏览数 (1)

xpath / // //a/@href 返回属性 //a/text() 返回文本 //div/* 返回所有元素 //a[@href]包含href的a //a[@href='xx'] //a[contains(@href,'xxx')] 模糊搜索 //a[not(contains(@href,'abc'))]

response.xpath('/html').extract() pagesource google浏览器中右击:copy xpath =//h1[@id='xxx']/span/text()

image.png

//*[@id='username']//text()


书中源码:https://github.com/scallingexcellence/scrapybook.git example: scrapy startproject properties cd properties vi items.py

image.png

scrapy genspider basic web #利用basic模板生成爬虫,限制在web

scrapy genspider -l 查看所有模板

以上语句生成的模板

image.png

更改basic.py

image.png

image.png

开始运行爬虫:scrapy crawl basic

修改item.py,用propertieitem替换

image.png

结果保持到文件

image.png

使用ItemLoader parse

image.png

ItemLoader中的用法

image.png

image.png

协议@,爬虫中的单元测试,运行:scrapy check basic

image.png

2 example:

image.png

image.png

多个URL:

image.png

水平和垂直爬取:

image.png

scrapy crawl manual -s CLOSESPIDER_TIMECOUNT=90 90秒后退出

3 exapmle

水平和垂直爬虫类crawl

image.png

image.png

爬虫,登陆,from_response?

image.png

image.png

4 example: login ??

parse_item用selector做源头,提升性能

image.png

5 example:https://www.jianshu.com/p/9f7540614b26

配置

scrapy settings --get CONCURRENT_REQUESTS scrapy settings -s CONCURRENT_REQUESTS=6 DOWNLOADS_DELAY CONCURRENT_ITEMS 每次请求并发数的最大文件数 DNSCACHE_ENABLED

image.png

HTTPCACHE_ENABLED 离线抓取 ROBOTSTXT_OBEY 是否参考robots.txt COOKIES_ENABLED IMAGES_STORE FILES_STORE FILES_EXPIRES REDIRECT_PRIORITY REDIRECT_MAX_TIMES

下载图片的配置

image.png

架构

image.png

加日期处理Pipeline

image.png

image.png

信号??

一个可以测量吞吐量和延迟的扩展

pip install trep

6 example:一个写入elasticsearch的pipline 7 example:pipeline使用google geocoding api来进行地理编码 8 example:pipeline 写入mysql 9 example:pipeline 写入redis 10 exapmle:pipeline进行CPU密集型和阻塞操作 computation.py @defer.inlineCallbacks??????? 11 example:调用sh

image.png

image.png

image.png

12 example:scrapyd

0 人点赞