爬蟲需要哪些
1、爬蟲架構
(1)爬蟲調度器主要配合調用其他四個模塊。所謂調度,就是調用其他模板。
(2)URL管理器負責管理URL鏈接。URL鏈接分為爬行鏈接和未爬行鏈接,需要URL管理器來管理。同時,它還為獲取新的URL鏈接提供了介面。
(3)HTML下載器是下載要抓取的頁面的HTML。
(4)HTML解析器是從HTML源代碼中獲取爬行的數據,同時向URL管理器發送新的URL鏈接,並向數據存儲器發送處理後的數據。
(5)數據存儲器是將HTML下載器發送的數據存儲在本地。
2、爬蟲原理
在編寫python爬蟲程序時,只需要做以下兩件事:
發送GET請求,獲取HTML
解析HTML,獲取數據
3、使用ip代理
使用Python爬蟲時,經常會遇到有反爬機制的網站。我們可以通過偽裝headers爬行,但網站仍然可以獲得您的ip,從而禁止您的ip爬行信息。
爬蟲為什麼能快速爬取
python爬蟲是最方便快捷獲取數據的方法,不過很多小夥伴還沒有切實地感受過。爬行數據基本上通過網頁URL獲得該網頁的源代碼,根據源代碼篩選必要的信息。
1、爬蟲的準備
requests:獲取網頁源代碼
lxml:得到網頁源代碼中的指定數據
2、爬蟲快速的原因
requests可以很方便地讓我們得到網頁的源代碼網頁,同時lxml能夠很快來篩選出我們所需要的信息。
3、完整代碼實例
import requests
import lxml
html = requests.get("https://coder-lida.github.io/")
print (html.text)爬蟲爬取網頁
1、為什麼需要用爬蟲?
為其他程序提供數據源,如搜索引擎(百度、Google等)、數據分析、大數據等等。
2、python爬蟲設計思路
(1)、首先確定需要爬取的網頁URL地址 ;
(2)、通過HTTP協議來獲取對應的HTML頁面 ;
(3)、提取html頁面里的有用數據 ;
(4)、如果是需要的數據就保存起來,如果是其他的URL,那麼就執行第二步。
3、python爬蟲實例:爬取網頁新聞內容
(1)、確定爬取網頁內容的網路地址
(2)、實施爬蟲代碼
import requests
from bs4 import BeautifulSoup
res =requests.get('https://k.sina.com.cn/article_6192937794_17120bb42020015u42.html?from=health')
res.encoding='utf-8'
soup=BeautifulSoup(res.text, 'html.parser')
title=soup.select('#artibody')[0].text
print(title)以上就是python爬蟲爬取網頁新聞內容的簡單實現,是不是很簡單的,快嘗試看看吧~更多python爬蟲學習推薦:python爬蟲教程。
4、解決網站訪問頻次過高問題
現在很多網站對異常用戶訪問網站頻次過高設置了安全訪問機制。在這個時候,如果你想繼續訪問這個網站,HTTP代理ip
非常重要。
當前ip地址有限,可以更改新的ip地址,保證爬蟲的順利進行。
推薦使用優質的代理ip資源,保證爬蟲程序的順利進行。
實戰案例——爬去汽車之家網站上的圖片

隨著生活水平的提高和快節奏生活的發展。汽車開始慢慢成為人們的必需品,瀏覽各種汽車網站便成為購買合適、喜歡車輛的前提。例如汽車之家網站中就有最新的報價和圖片以及汽車的相關內容,是提供信息最快最全的中國汽車網站。本文介紹python爬蟲爬取汽車之家網站上的圖片的思路和具體演示代碼。
一、爬取汽車之家網站上的圖片思路分析
1、分析頁面,確認圖片的url是否在網頁源碼。
2、確認是靜態數據後,先找到總的ul標籤,再找它裡面的li標籤,最後在img標籤裡面的src屬性,即可獲得想要的圖片url地址。
3、通過切割圖片url的方式獲取圖片名字。
4、完成圖片命名後,使用os模塊確定圖片存放的路徑。
二、設置爬蟲代理IP
在做爬蟲的過程中,如果你爬取的頻率過快,不符合人的操作模式。有些網站的反爬蟲機制通過監測到你的IP異常,訪問頻率過高。就會對你進行封IP處理。目前已有比較多的第三方平台專門進行代理IP的服務。
三、爬取汽車之家網站上的圖片具體代碼
# piplines管道代碼
from urllib import request
import os
class VehicleHomePipeline:
def process_item(self, item, spider):
pic_url = item['pic_url']
# 得到圖片名字
pic_name = pic_url.split('__')[-1] # 得到xxx.jpg
# os.path.dirname(__file__) 結果 D:PycharmProjectsspiderday21vehicle_homevehicle_home
# 創建圖片存放路徑 xxxvehicle_homeresult_pic
pic_path = os.path.join(os.path.dirname(__file__), 'result_pic')
# 下載圖片 xxxvehicle_homeresult_picxxx.jpg
request.urlretrieve(pic_url, pic_path + '/' + pic_name)
return item
# 爬蟲代碼
import scrapy
from day21.vehicle_home.vehicle_home.items import VehicleHomeItem
class VehPicSpider(scrapy.Spider):
name = 'veh_pic'
allowed_domains = ['car.autohome.com.cn']
base_url = 'https://car.autohome.com.cn/photolist/series/18/p{}/'
start_urls = [base_url.format(1)]
def parse(self, response):
# 獲取圖片標籤列表
pic_lists = response.xpath('//ul[@id="imgList"]/li')
for pic in pic_lists:
pic_url = pic.xpath('./a/img/@src').extract_first()
# 上述獲取的url需要進一步補全
pic_url = response.urljoin(pic_url)
item = VehicleHomeItem()
item['pic_url'] = pic_url
print(item)
yield item
# 翻頁邏輯
for page in range(2, 3):
next_url = self.base_url.format(page)
yield scrapy.Request(next_url)以上就是python爬蟲爬取汽車之家網站上的圖片的思路和具體演示代碼,大家可以套用代碼靈活使用喲~
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/220587.html
微信掃一掃
支付寶掃一掃