scrapy預設模板解析網頁裡面的鏈結內容

2021-10-25 01:43:41 字數 1600 閱讀 8479

前言:首先進入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 ...