日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

scrapy获取a标签的连接_Python爬虫 scrapy框架初探及实战!

發布時間:2025/3/12 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scrapy获取a标签的连接_Python爬虫 scrapy框架初探及实战! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Scrapy框架安裝

操作環境介紹

操作系統:Ubuntu19.10

Python版本:Python3.7.4

編譯器:pycharm社區版

安裝scrapy框架(linux系統下)

安裝scrapy框架最繁瑣的地方在于要安裝很多的依賴包,若缺少依賴包,則scrapy框架的安裝就會報錯。

不過anaconda環境中會自帶lxml模塊,可以免去一些步驟

在終端輸入命令安裝依賴包

sudo apt-get install python-dev
sudo apt-get install libevent-dev

根據提示輸入y確認安裝,耐心等待安裝完成即可

安裝完所需要的依賴包之后,就可以直接用pip安裝scrapy框架了

pip install scrapy

在終端輸入命令后,可能會出現網絡響應超時等報錯

經過幾次的嘗試之后,我認為這是軟件源的問題導致下載過慢,建議更換清華的鏡像源來安裝

pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple

在命令的末尾加上-i來暫時使用指定的鏡像源來安裝scrapy框架

在排除其他問題的影響后,若安裝速度依舊不理想,可多嘗試幾個源來安裝

阿里云 http://mirrors.aliyun.com/pypi/simple/
中國科技大學 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/
中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/

ok,我們可以看到更換源之后的下載速度有了顯著的提升,只需要等待幾秒鐘就可以看到安裝成功的標志

檢測安裝是否成功

打開終端,輸入命令查看scrapy版本

scrapy --version

看到類似下圖所示的版本信息:

再輸入命令

scrapy bench

這條命令是調用scrapy去爬取一個空網址的內容,再輸入命令之后,看到scrapy正在運行去爬取空網址的內容即安裝成功了這個框架

Scrapy框架爬取原理

Scrapy框架的主體結構分為五個部分:

Scrapy Engine(引擎):負責Spider、ItemPipeline、Downloader、Scheduler中間的通訊,信號、數據傳遞等。

Scheduler(調度器):它負責接受引擎發送過來的Request請求,并按照一定的方式進行整理排列,入隊,當引擎需要時,交還給引擎。

Downloader(下載器):負責下載Scrapy Engine(引擎)發送的所有Requests請求,并將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來處理。

Spider(爬蟲):它負責處理所有Responses,從中分析提取數據,獲取Item字段需要的數據,并將需要跟進的URL提交給引擎,再次進入Scheduler(調度器)。

Item Pipeline(管道):它負責處理Spider中獲取到的Item,并進行進行后期處理(詳細分析、過濾、存儲等)的地方。

它還有兩個可以自定義下載功能的中間件:

Downloader Middlewares(下載中間件):一個可以自定義擴展下載功能的組件。

Spider Middlewares(Spider中間件):一個可以自定擴展和操作引擎和Spider中間通信的功能組件。

Scrapy框架運行方式

由上圖可以看出,引擎就相當于框架中的大腦,調配著其他部分的運作。

首先爬蟲文件向引擎發送網址請求,在經由引擎將網址發送給調度器,調度器通過內部的函數將發來的網址進行隊列操作,將排好隊的網址重新發送回引擎。引擎接收到了發送回來的隊列之后,便將請求交給下載器,由下載器從外部網頁獲取網頁源碼,將獲取到的響應數據再發送回引擎。引擎接收到下載器發回的網頁源碼之后,再將數據傳回爬蟲文件,由爬蟲文件負責對html數據的提取,等到數據提取完畢,再把數據發送給引擎。引擎對爬蟲文件發送來的內容進行檢測,若判斷傳過來的內容為數據,則引擎將數據發送給專門保存文件的管道數據,管道文件接收到發來的數據之后,就可以有選擇的保存在數據庫或文件中。

至此,一次完整的爬蟲項目運行完成。

Scrapy框架實例

使用Scrapy爬取阿里文學

使用scrapy框架爬取的一般步驟

1.創建爬蟲項目

2.創建爬蟲文件

3.編寫爬蟲文件

4.編寫items

5.編寫pipelines

6.配置settings

7.運行scrapy框架

注:上面的步驟是使用scrapy的一般步驟,實際操作時可以根據爬取頁面的難易度來調整這些步驟

1.創建爬蟲項目

首先找到一個文件夾,用于保存項目的內容

打開終端,在該目錄下輸入:

scrapy startproject [項目名稱]

成功創建

這時可以發現文件夾下多了一個以項目名稱命名的文件夾

進入文件夾,發現里面已經有了框架的模板文件

init?.py //初始文件

items.py//定義目標,想要爬什么信息

pipelines.py//爬后處理

middlewares.py//中間鍵

settings.py//文件的設置信息

2.創建爬蟲文件

scrapy genspider [爬蟲名] [想要爬取網址的域名]

注意:爬蟲名一定不能與項目名一樣,否則會創建失敗

3.分析文件,編寫爬蟲文件

我們在上一步創建了爬蟲文件之后會發現多出來一個py文件在項目名目錄下

打開aliwx.py文件,開始分析網頁,提取想要爬取的信息

打開阿里文學的官網首頁,先設定我們想要爬取的內容為最近更新的書名及章節,使用xpath語法進行提取

打開項目文件夾下的spider文件夾,再打開我們剛剛所創建的爬蟲文件

打開后可以看到一個基礎的爬蟲框架,我們要根據實際的需要來修改這個框架的內容

上面有紅色箭頭的地方就是我們主要修改的地方

首先將第一個指向的地址換成我們想要爬取的地址,即阿里文學的官網首頁《?https://www.aliwx.com.cn/》

第二個地方就是我們設置爬取內容的定制項

import scrapy
class AliwxSpider(scrapy.Spider):
name = 'aliwx'
allowed_domains = ['aliwx.com.cn']
start_urls = ['https://www.aliwx.com.cn/']
def parse(self, response):
#選擇所有a標簽下的內容
selectors = response.xpath("//ul[@class='list']/li[@class='tr']/a")
# 循環遍歷每一個a標簽,使書名和最新章節可以一對一匹配
for selector in selectors:
#提取a標簽下的書名 . 表示在當前標簽下繼續選擇
book_name = selector.xpath("./span[2]/text()").get()
#提取a標簽下的最新章節名
book_new = selector.xpath("./span[3]/text()").get()
#打印書名和章節名
print(book_name,book_new)

4.設置settings

打開settings文件,在文件中找到代碼

這一行的意思是詢問是否遵循?爬蟲協議?,大致來講就是協議規范了我們只能提取網站允許我們提取的內容,所以此處應該將True提換成False,否則我們很有可能提取不到想要的內容

5.運行scrapy框架

打開終端,將目錄切換至項目文件夾下,輸入命令行來運行項目

scrapy crawl [爬蟲名]

等待項目運行完畢,即可看到爬取到的內容:

6.將爬取下來的內容保存到文件

如果想要將內容保存到文件中,就需要設置一個返回值來儲存

將print(book_name,book_new)語句替換

items = {
'name': book_name,
'new': book_new,
}
yield items

再打開終端,輸入運行并保存命令:

scrapy crawl aliwx -o book.csv

等待程序運行完成,就可以看到出現了一個book.csv文件在項目目錄下,打開就是我們所保存的內容

到此為止一個最基本的爬蟲項目就制作完成了,如果有哪里寫的不好請大佬多多批評指正!

源碼獲取加群:850591259

總結

以上是生活随笔為你收集整理的scrapy获取a标签的连接_Python爬虫 scrapy框架初探及实战!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。