python爬蟲學習 scrapy

2021-10-25 05:43:55 字數 2316 閱讀 8729

如何學習框架

什麼是scrapy

scrapy框架的基本使用

建立乙個工程:scrapy startproject firstblood

cd firstblood

需要在spiders子目錄中建立乙個爬蟲檔案

執行工程:

settings.py設定:

scrapy資料解析

scrapy持久化儲存

基於管道:

import scrapy

from lifepro.items import lifeproitem

class

lifespider

(scrapy.spider)

: name =

'life'

# allowed_domains = ['']

start_urls =

['']def

parse

(self, response)

:# 解析:作者的名稱和段子的內容

div_list = response.xpath(

'//div[@class="col1 old-style-col1"]/div'

)# 儲存所有解析到的資料

# all_data =

for div in div_list:

# extrac可以將selector物件中data引數儲存的字串提取出來

# author = div.xpath('./div[1]/a[2]/h2/text()')[0].extract()

author = div.xpath(

'./div[1]/a[2]/h2/text() | ./div[1]/span/h2/text()'

).extract_first(

) content = div.xpath(

'./a[1]/div//span/text()'

).extract(

) content =

''.join(content)

# 將資料封裝儲存到item物件中

item = lifeproitem(

) item[

'author'

]= author

item[

'content'

]= content

# 將item提交給管道

yield item

# 終端持久化儲存

# dic =

# return all_data

import scrapy

class

lifeproitem

(scrapy.item)

:# define the fields for your item here like:

author = scrapy.field(

) content = scrapy.field(

)# pass

from itemadapter import itemadapter

class

lifepropipeline

: fp =

none

# 重寫父類的乙個方法:該方法只在開始爬蟲的時候被呼叫一次

defopen_spider

(self,spider)

:print

('開始爬取'

) self.fp =

open

('./lifepro/spiders/data/life.txt'

,'w'

,encoding=

'utf-8'

)def

process_item

(self, item, spider)

: author = item[

'author'

] content = item[

'content'

] self.fp.write(author+

':'+content+

'\n'

)return item

defclose_spider

(self,spider)

:print

('爬取完畢'

) self.fp.close(

)

item_pipelines =

Python爬蟲學習

最近由於 需要,用python寫了爬蟲爬取資料。在這個過程中,認識到學習一門語言最好的辦法是動手,別無技巧。在動手程式設計的過程中,遇到了很多意想不到的問題,當然也學習了很多書本上不會講述的知識,感覺這才是真正的學習知識。在這個過程中,遇到的乙個問題讓我花費了很久時間,留下了很深的印象。擔心會隨著時...

Python學習 爬蟲

在搜尋python知識的時候一直看到爬蟲相關知識,感覺挺好玩的,打算簡單了解一下。1 找到伺服器主機,向伺服器發出乙個請求,伺服器經過解析之後,傳送給使用者的瀏覽器 html js css 等檔案,瀏覽器解析出來,使用者便可以看到形形色色的了。因此,使用者看到的網頁實質是由 html 構成的,爬蟲爬...

python爬蟲學習

例如列印當前時間 from datetime import datetime print datetime.now 或者import datetime print datetime.datetime.now html結構 html head body html head a useful page ...