以爬取陽光陽光**問政平台**為例,進行詳情頁的爬取。
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檔案中對爬取的資料處理操作。
1importre2
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 爬蟲專案名稱 執行此命令,可以生成乙個爬蟲專案 會預先生成...