7 scrapy初認識
5606 ワード
scrapyフレームワーク
フレームワーク紹介:Scrapyは、Webサイトのデータを抽出し、構造的なデータを抽出するために作成されたアプリケーションフレームワークで、非常に有名で、非常に強いです.フレームワークとは,様々な機能(高性能非同期ダウンロード,キュー,分散,解析,持続化など)が統合された汎用性の高いプロジェクトテンプレートである.フレームワークの学習には,そのフレームワークの特性,各機能の使い方を学習することに重点を置く.
-データ解析spider.py
-itemクラスitemsをカプセル化する.py
-itemタイプのオブジェクトspiderをインスタンス化py
-解析されたデータをitemタイプのオブジェクトに順次格納します.
-itemオブジェクトをパイプにコミット
-パイプを開くpy
転載先:https://www.cnblogs.com/zhangchen-sx/p/10822936.html
フレームワーク紹介:Scrapyは、Webサイトのデータを抽出し、構造的なデータを抽出するために作成されたアプリケーションフレームワークで、非常に有名で、非常に強いです.フレームワークとは,様々な機能(高性能非同期ダウンロード,キュー,分散,解析,持続化など)が統合された汎用性の高いプロジェクトテンプレートである.フレームワークの学習には,そのフレームワークの特性,各機能の使い方を学習することに重点を置く.
:
Linux:
pip3 install scrapy
Windows:
a. pip3 install wheel
b. twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
c. , pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl
d. pip3 install pywin32
e. pip3 install scrapy
1. :scrapy startproject
2.cd proName
3. scrapy genspider
4. scrapy crawl spiderName
scrapy crawl pa1 --nolog # log
# -*- coding: utf-8 -*-
import scrapy
class Pa1Spider(scrapy.Spider):
#
name = 'pa1'
# allowed_domains = ['www.xxx.com'] #
start_urls = ['https://www.qiushibaike.com/text/'] # url
#
def parse(self, response): #
div_list = response.xpath('//div[@id="content-left"]/div')
names = []
for div in div_list:
# author = div.xpath('./div[1]/a[2]/h2/text()')[0].extract()
author = div.xpath('./div[1]/a[2]/h2/text()').extract_first()
names.append({'name':author}) # ('json', 'jsonlines', 'jl', 'csv', 'xml', 'marshal', 'pickle')
return names
#
# - : parse
scrapy crawl first -o qiubai.csv # .json .csv
# - pipelines
-データ解析spider.py
-itemクラスitemsをカプセル化する.py
-itemタイプのオブジェクトspiderをインスタンス化py
-解析されたデータをitemタイプのオブジェクトに順次格納します.
-itemオブジェクトをパイプにコミット
- IO spider.py
-パイプを開くpy
# :
, settings.py , , , item, def process_item(): return item.
# :
1 start_urls , , url
2
url ,%s %d
? parse
yield scrapy.Request(url=url,parse.callback)
# 5
:
: item,
:
:
:
- :
1 UA UA , random.choice()
2 IP(process_exception )
: ,
# POST :
def start_requests(self):
yield scrapy.FormRequest(url,callback,formdata)
scrapy cookie , settings.py COOKIES_ENNABLE=False
#
settings.py LOG_LEVEL='ERROR'
#
settings.py LOG_FILE = 'path'
# :
meta( ) ,
meta:response.meta['key']
転載先:https://www.cnblogs.com/zhangchen-sx/p/10822936.html