前言:首先進入terminal中
1、建立乙個scrapy框架專案:scrapy startproject 專案名
2、建立爬蟲url:
cd 專案名
scrapy genspider itcast **
1、在建立的爬蟲模組裡面填寫資訊
# name 爬蟲的識別名稱,必須唯一,啟動爬蟲時使用
name = 'xiaoxiao'
allowed_domains = ['xiaohua.zol.com.cn']
# 搜尋的網域名稱範圍
start_urls = ['']
# 爬蟲起始位址
#上面的都是自動生成的
# 解析返回的網頁資料(response.body),提取結構化資料
def parse(self, response):
with open('xiaoh.html', 'w', encoding='utf-8') as f:
f.write(response.text)
li = response.xpath('//div[@class="section"]/ul[@class="news-list video-list"]/li')
for liens in li:
item = xiaohuaitem()
time = liens.xpath('.//span/text()')
item['time'] = time[0].get()
title = liens.xpath('.//a/@title')
item['title'] = title[0].get()
href = liens.xpath('.//a/@href')
item['href'] = ''+href[0].get()
yield scrapy.request(url=item['href'], callback=self.parse_content, meta=)
# 解析url請求返回後的內容
def parse_content(self,response):
print('+++++++++++++++++parse_content+++++++++++++++++++++')
item['content'] = response.xpath('//meta[@name="description"]/@content').get().strip()
yield item
2、在itmes資料容器檔案裡面加入要儲存的屬性
這裡的變數名一定要和爬蟲模組儲存的字典 key 對應上
time = scrapy.field()
title = scrapy.field()
href = scrapy.field()
content = scrapy.field()
setting模組:
如果儲存的資料裡面有中文需要在settings模組裡面加入一條字元編碼集**
feed_export_encoding = 'utf-8'
配置標頭檔案
如果要跳過**的robots協議
robotstxt_obey = false
網頁爬蟲 scrapy高階
現在的大 基本除了pc端都會有移動端,所以需要先確定爬哪個。www.weibo.com,主站 www.weibo.cn,簡化版 m.weibo.cn,移動版 上面三個中,主站的微博資料是動態載入的,意味著光看原始碼是看不到資料的,想爬的話要麼搞清楚其api訪問情況,要麼模擬js,那樣的話花的力氣可能...
Scrapy框架解析
engine 1 控制所有模組之間的資料流 2 根據條件觸發事件 不需要使用者修改 scheduler對所有爬取請求進行排程管理 不需要使用者修改 middleware目的 事實engine scheduler和 之間進行使用者可配置的控制 功能 修改 丟棄 新增請求或響應 使用者可以編寫配置編碼 ...
用scrapy進行網頁抓取
最近用scrapy來進行網頁抓取,對於pythoner來說它用起來非常方便,詳細文件在這裡 要想利用scrapy來抓取網頁資訊,需要先新建乙個工程,scrapy startproject myproject 工程建立好後,會有乙個myproject myproject的子目錄,裡面有item.py ...