分享爬蟲的簡單知識。附帶爬蟲案例。

2021-09-12 06:26:45 字數 2322 閱讀 7885

用python寫乙個的爬蟲。對於python這個指令碼語言來說寫爬蟲不是一件很難的事情。

在寫爬蟲之前我們先了解一些簡單的爬蟲知識。

爬蟲分類:

2. 聚焦網路爬蟲 

3. 增量式網路爬蟲

4. 深層頁面爬蟲

簡單爬蟲架構:

1. url管理器 universal resource location

3. 網頁解析器

4. 輸出管理器

python實現網頁解析的常用工具

1. 正規表示式 regular expression

2. lxml庫 xpath語法 

html xml

你好3. beautifulsoup bs

常見爬蟲框架

scrapy 最流行

pyspider 國人編寫

cola  分布式爬蟲框架

下面我們先寫乙個簡單的爬蟲:>>> import requests

>>> response = requests.get('')

>>> with open('logo.png','wb') as logo:

...     logo.write(response.content)

...    

response.text

response.encoding

response.content

response.status_code

簡單的爬取像上述即可,當我們需要爬取很多資料的時候我們就需要將自己偽裝一下,避免被爬取的**將你的id封掉。怎麼做呢?

我們可以將請求頭更換為乙個瀏覽器做乙個迷惑。

方法如下:

定製請求頭{}中間的user-agent是怎麼來的呢?

最下面我們就可以看到乙個user-agent,這個東西就是請求頭。我們複製即可。當然其他瀏覽器也可以。

下面我們就來做乙個爬安居客租房資訊:

#爬取安居客西安租房資訊

import requests #import引入各種庫

from lxml import etree

import csv

import time

import random

from pip._vendor.msgpack.fallback import newlist_hint

def spider(): #定義抓取函式

#定製乙個請求頭,偽裝成瀏覽器

prefix_url = ''#爬取的**頁面

for i in range(1, 10 ):

url = prefix_url + str(i)

html = requests.get(url, headers=headers)

selector = etree.html(html.text)

house_list = selector.xpath('//*[@id="list-content"]/div')

house_list=house_list[2:-2]#去除列表頭尾不是**列表的div

for house in house_list:

title = house.xpath('div[1]/h3/a/text()')[0]

area = house.xpath('div[1]/p[1]/text()')[0]

unit_price = house.xpath('div[2]/p/strong/text()')[0]

span = house.xpath('div[1]/p[2]/span[1]/text()')[0]

square = house.xpath('div[1]/p[1]/text()[2]')[0]

print(title,area,unit_price,span,square)

item = [title,area,unit_price,span,square]#儲存資料

data_write(item)

# 休息2-3秒

time.sleep(random.randint(2, 3))

def data_write(item):#定義儲存函式

with open('fangyaun.csv','a',encoding='utf-8',newline='') as file:

writer = csv.writer(file)

writer.writerow(item)

# 定義乙個主函式

if __name__ == '__main__':

spider()

乙個簡單的爬蟲算是完成了。分享使人快樂,越分享、越快樂。

爬蟲基礎知識簡單案例

1.爬蟲基礎 爬蟲概念 什麼是爬蟲 爬蟲是乙個應用程式 是指某乙個用於爬取資料的應用程式 爬取的目標可以使整個網際網路 也可以是單獨的某乙個伺服器 在cs結構中 爬蟲屬於client 客戶端 爬蟲的價值 網際網路中最有價值的就是資料 爬蟲中首要任務就是要通過網路取獲取模板伺服器的資料 來為自己創造價...

scrapy爬蟲簡單案例

進入cmd命令列,切到d盤 cmd d 建立article資料夾 mkdir articlescrapy startproject articlescrapy genspider xinwen www.hbskzy.cn 命令後面加爬蟲名和網域名稱 不能和專案名同名 items檔案 define h...

node 簡單的爬蟲案例

cherrio模組 安裝cnpm install cherrio使用方法const cheerio require cheerio const cheerio.load h2.title text hello there h2 addclass welcome html request模組var r...