數據爬蟲技術分享:爬蟲服務器需要什麼配置

爬蟲需要哪些

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)、確定爬取網頁內容的網絡地址

https://k.sina.com.cn/article_6192937794_17120bb42020015u42.html?from=health

(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爬蟲分析和案例展示

隨着生活水平的提高和快節奏生活的發展。汽車開始慢慢成為人們的必需品,瀏覽各種汽車網站便成為購買合適、喜歡車輛的前提。例如汽車之家網站中就有最新的報價和圖片以及汽車的相關內容,是提供信息最快最全的中國汽車網站。本文介紹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-hant/n/220587.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 12:11
下一篇 2024-12-09 12:11

相關推薦

發表回復

登錄後才能評論