scrapy框架下爬蟲實現詳情頁抓取

2022-08-31 07:00:20 字數 2988 閱讀 7677

以爬取陽光陽光**問政平台**為例,進行詳情頁的爬取。

1

#-*- coding: utf-8 -*-

2import

scrapy

3from yanguang.items import

yanguangitem45

class

sunspider(scrapy.spider):

6 name = '

sun'

7 allowed_domains = ['

sun0769.com']

8 start_urls = ['

']910

defparse(self, response):

11 tr_list=response.xpath("

//div[@class='greyframe']/table[2]/tr/td/table/tr")

12for tr in

tr_list:

13 item=yanguangitem()

14 item['

title

']=tr.xpath("

./td[2]/a[@class='news14']/@title

").extract_first()

15 item["

href

"]=tr.xpath("

./td[2]/a[@class='news14']/@href

").extract_first()

16 item["

publish_date

"]=tr.xpath("

./td[last()]/text()

").extract_first()

1718

yield

scrapy.request(

19 item["

href"],

20 callback=self.parse_detail,

21 meta=,22)

23#翻頁24 next_url=response.xpath("

.//a[text()='>']/@href

").extract_first()

25if next_url is

notnone:

26yield

scrapy.request(

27next_url,

28 callback=self.parse()29)

3031

32def parse_detail(self,response): #

處理詳情頁

33 item=response.meta["

item"]

34 item["

content

"]=response.xpath("

//div[@class='c1 text14_2']//text()

").extract()

35 item["

content_img

"] = response.xpath("

//div[@class='c1 text14_2']//img/@src

").extract()

36 item["

content_img

"] =["

"+i for i in item["

content_img"]]

37yield item

下面為pipelines.py檔案中對爬取的資料處理操作。

1

importre2

class

yanguangpipeline(object):

3def

process_item(self, item, spider):

4 item["

content

"]=self.process_content(item["

content"])

5print

(item)

6return

item78

def process_content(self,content):#

文字內容的處理

9 content=[re.sub(r"

\xa0|\s

","",i)for i in

content]

10 content=[i for i in content if len(i)>0]#

去除列表中的空字串

11return content

在settings.py檔案中修改user_agent的內容是對方伺服器無法一眼看出我們的請求是爬蟲。

預設settings.py檔案中的user_agent為:

1

#crawl responsibly by identifying yourself (and your website) on the user-agent

2 user_agent = '

tencent (+

'

將settings.py檔案中的user_agent修改為:

1

#crawl responsibly by identifying yourself (and your website) on the user-agent

2 user_agent = '

'

Scrapy爬蟲框架下執行爬蟲的方法

在使用scrapy框架進行爬蟲時,執行爬蟲檔案的方法是 scrapy crawl 其中 是爬蟲檔名。但是,當我們在建立了多個檔案時,使用上面的命令時會比較繁瑣麻煩,我們就可以使用下述方法同時完成爬蟲檔案的執行。第一種,在scrapy框架下建立乙個執行檔案,如 run.py 在檔案中建立乙個列表,列表...

scrapy爬蟲框架

作者經過幾周的python爬蟲實踐之後,深入學習了一下scrapy這個爬蟲框架,現將一些基本知識和 總結整理一下,以備後查。2.scrapy的命令列使用 這部分網上很多部落格都有總結,不需要背,理解會用主要的命令 startproject crawl fetch list genspider.即可,...

scrapy 爬蟲框架

1.安裝 公升級pip版本 pip install upgrade pip 通過pip安裝scrapy框架 pip install scrapy 安裝成功 只執行scrapy 進行測試是否安裝成功 2.scrapy startproject 爬蟲專案名稱 執行此命令,可以生成乙個爬蟲專案 會預先生成...