欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:scrapy快速上手

柚子快報(bào)激活碼778899分享:scrapy快速上手

http://yzkb.51969.com/

安裝

????????除了scrapy本身還要安裝兩個庫?

pip install scrapy

pip install pywin32

pip install wheel

?創(chuàng)建項(xiàng)目

在要創(chuàng)建項(xiàng)目的地方打開powershell

scrapy startproject 項(xiàng)目名

我們得到這樣的項(xiàng)目結(jié)構(gòu),功能如下?

? ? ? ? scrapy.cfg? ? ? ? ? ? ? ? 項(xiàng)目的主配置信息? ? ? ? items.py? ? ? ? ? ? ? ? ? ?設(shè)置項(xiàng)目模板,用于結(jié)構(gòu)化數(shù)據(jù)? ? ? ? piplines.py? ? ? ? ? ? ? ? 數(shù)據(jù)的持久化處理? ? ? ? seting? ? ? ? ? ? ? ? ? ? ? ? 配置文件? ? ? ? spiders? ? ? ? ? ? ? ? ? ? ? ?爬蟲文件目錄

配置信息

seeting.py下修改是否支持?jǐn)?shù)據(jù)爬取修改為允許,true不允許,false允許

??

?將這一行的內(nèi)容改為false

配置瀏覽器請求頭中的user-agent

根據(jù)網(wǎng)站反爬措施制定其他的配置?

配置模板

????????items.py中照著給出的格式配置自己的數(shù)據(jù)模板

? ? ? ? 變量名 = scrapy.Field()

創(chuàng)建爬蟲文件

指定爬取目標(biāo)

?回到powershell,

cd 項(xiàng)目名

scrapy genspider 爬蟲文件名 爬取目標(biāo)網(wǎng)址

得到這樣一個文件

import scrapy

class QuotesSpider(scrapy.Spider):

# 爬蟲名

name = "quotes"

allowed_domains = ["quotes.toscrape.com"]

# 爬取目標(biāo)

start_urls = ["https://quotes.toscrape.com/"]

# 爬取動作

def parse(self, response):

尋找元素和內(nèi)容

在parse方法中定義爬取動作?,參數(shù)列表中的response是爬取目標(biāo)的響應(yīng)對象。

具有如下屬性

url:響應(yīng)的 URL 地址。status:HTTP 狀態(tài)碼,如 200 表示成功,404 表示未找到等。headers:響應(yīng)的 HTTP 頭部信息,是一個類似字典的對象。body:響應(yīng)體,即服務(wù)器返回的內(nèi)容,是一個字節(jié)串(bytes)。text:響應(yīng)體的字符串形式,如果響應(yīng)的?Content-Type?是文本類型(如 HTML),則可以直接使用此屬性獲取內(nèi)容。encoding:響應(yīng)的編碼方式,用于將?body?轉(zhuǎn)換為?text。meta:傳遞給響應(yīng)的元數(shù)據(jù)信息,常用于在請求和響應(yīng)之間傳遞數(shù)據(jù)。request:觸發(fā)此響應(yīng)的請求(Request)對象。

具有如下方法

xpath():用xpass尋找元素css():用css尋找元素urljoin():構(gòu)造網(wǎng)址get()?和?getall(): 這兩個方法用于從Selector或SelectorList對象中提取數(shù)據(jù)。get()方法返回第一個匹配節(jié)點(diǎn)的文本或?qū)傩灾担ㄈ绻付藢傩裕?,而getall()方法返回所有匹配節(jié)點(diǎn)的文本或?qū)傩灾盗斜?。extract()?和?extract_first(): 這兩個方法是舊版本Scrapy中用于提取數(shù)據(jù)的方法,但在新版本中,推薦使用get()和getall()方法。extract()方法返回所有匹配節(jié)點(diǎn)的文本列表,而extract_first()方法返回第一個匹配節(jié)點(diǎn)的文本。re(regex, replace_entities=True)?和?re_first(regex, default=None, replace_entities=True): 這兩個方法允許你使用正則表達(dá)式來提取匹配的數(shù)據(jù)。re()方法返回所有匹配的字符串列表,而re_first()方法返回第一個匹配的字符串。attrib: 這是一個屬性字典,用于訪問當(dāng)前節(jié)點(diǎn)的屬性。如果當(dāng)前對象是SelectorList,則attrib將返回列表中第一個元素的屬性字典。

????????使用xpath和css方法尋找元素的時候如果返回多個值的時候添加.extract()返回的是str類型列表,單個值則為.extract_first(),返回的是str類型

text = q.xpath(".//span[@class='text']/text()").extract_first()

author = q.xpath('.//span/small[@class="author"]/text()').extract_first()

tags = q.xpath('.//div[@class="tags"]/a[@class="tag"]').extract()

????????這樣找到的元素可以直接被bs4解析并獲取值。

將結(jié)果組成模板

? ? ? ? 首先導(dǎo)入item,并在要組成模板的位置實(shí)例化一個ScrapydemoItem對象

from scrapydemo.items import ScrapydemoItem

item = ScrapydemoItem()#在你要組成模板的位置寫

?????????為實(shí)例屬性賦值

item["text"] = text

item["author"] = author

item["tags"] = tags

? ? ? ? 結(jié)束爬蟲? ? ? ? yield類似return,但是可以循環(huán)返回

yield item

?????????每返回一個item會寫入一條數(shù)據(jù)

? ? ? ? 當(dāng)然也可以不返回item,獲取到下一個頁面的url即可繼續(xù)訪問下一個頁面

# 獲取訪問下一頁地址

next = response.css('.pager .next .a::attr(href)').extract_first() # 兩個冒號獲取屬性值

# 合成絕對路徑

url = response.urljoin(next)

# 訪問請求的回調(diào)函數(shù)

# 第三個參數(shù)是關(guān)閉地址過濾

yield scrapy.Request(url=url,callback=self.parse,dont_filter=True)

? ? ? ? ?這樣就可以調(diào)用自己繼續(xù)訪問下一頁了

創(chuàng)建啟動項(xiàng)

創(chuàng)建main.py?

from scrapy import cmdline

cmdline.execute("scrapy crawl quotes -o quotes.json".split())

# scrapy crawl 爬蟲名 -o代表文件流 創(chuàng)建quotes.json這個文件

? ? ? ? 也可以在cmd或powershell中輸入字符串中的值?

爬取scrapy官方靶站的示例代碼:

import scrapy

from scrapydemo.items import ScrapydemoItem

class QuotesSpider(scrapy.Spider):

# 爬蟲名

name = "quotes"

allowed_domains = ["quotes.toscrape.com"]

# 爬取目標(biāo)

start_urls = ["https://quotes.toscrape.com/"]

# 爬取動作

def parse(self, response):

# 獲取頁面中的元素返回列表

quote = response.xpath('//div[@class="quote"]')

# 遍歷列表每個元素

for q in quote:

text = q.xpath(".//span[@class='text']/text()").extract_first() # 獲取內(nèi)容

author = q.xpath('.//span/small[@class="author"]/text()').extract_first() # 獲取作者

tags = q.xpath('.//div[@class="tags"]/a[@class="tag"]').extract() # 獲取標(biāo)簽

# 實(shí)例化

item = ScrapydemoItem()

# 為實(shí)例屬性賦值

item["text"] = text

item["author"] = author

item["tags"] = tags

# 返回?cái)?shù)據(jù),相當(dāng)于return,但是可以循環(huán)返回。

yield item

# 獲取訪問下一頁地址

next = response.css('.pager .next .a::attr(href)').extract_first() # 兩個冒號獲取屬性值

# 合成絕對路徑

url = response.urljoin(next)

# 訪問請求的回調(diào)函數(shù)

# 第三個參數(shù)是關(guān)閉地址過濾

yield scrapy.Request(url=url,callback=self.parse,dont_filter=True)

柚子快報(bào)激活碼778899分享:scrapy快速上手

http://yzkb.51969.com/

相關(guān)鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19540830.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄