python爬蟲入門訓練 2

2021-10-06 05:10:30 字數 3033 閱讀 2925

這次的爬蟲訓練是對豆瓣top250資訊的爬取,比較簡單的靜態頁面的爬取,本人也是初學者,為了防止學習的困難,我盡量寫的詳細點,建議先把**複製一遍,看能不能成功執行,再過來看,免得到時候全部看完了,**不能執行,到時候自己解決也是蠻麻煩的,畢竟爬蟲更新換代也是蠻快的

對豆瓣top250所有資訊進行爬取,包括影名、格言、評分,先存為.csv檔案,最後轉為excel**儲存

requests庫,lxml解析庫,csv檔案儲存

1.進入到豆瓣top250主介面,進行如下操作,基本得到了我們需要資訊的原始碼

2.分析每一頁的url,找出相應規律

第一頁:

第二頁:

我們發現start=0和start=25有所不同,其餘都是一樣的,我們陸續檢視後面幾頁url,發現start的值以25遞增,由此我們可以推出各頁的url

有部分注釋

import requests

import csv

from lxml import etree

# 得到第i頁的源**

defget_resource

(page)

:# 傳入引數為頁數

headers =

# 設定請求頭

page_head=page*

25 page_url =

''% page_head # 得到每頁的url

try:

response = requests.get(page_url, headers=headers)

# 加個請求頭,偽裝一下,否則會被識別出來,具體錯誤可看返回的狀態碼

response.raise_for_status(

)# 若返回狀態碼不是200,則丟擲異常

except exception as e:

print

('爬取失敗'

)else

:return response.text # 爬取成功,則返回該頁原始碼資訊

#資訊處理,並寫入csv檔案

defhandle_info

(i,selector)

: selector = etree.html(selector)

# 構造乙個xpath解析物件

number = selector.xpath(

'//em/text()'

) name = selector.xpath(

'//span[@class="title"][1]/text()'

) motto = selector.xpath(

'//span[@class="inq"]/text()'

) score = selector.xpath(

'//span[@class="rating_num"]/text()'

)# 多次除錯後,發現第240,242,247,250個沒有格言,我們把其設定為空,否則後面會亂

# 第九頁,它們的motto下標分別為 14,16,21,24

if i==9:

motto.insert(14,

" ")

; motto.insert(16,

" ")

; motto.insert(21,

" ")

; motto.insert(24,

" ")

;for m in

range(25

):all_info =

[number[m]

, name[m]

, motto[m]

, score[m]

]# 形成列表,後面插入

with

open

('douban_top250.csv'

,'a+'

, newline=

'', encoding=

'utf-8'

)as csvfile:

writer = csv.writer(csvfile)

writer.writerow(all_info)

# 按行寫入

if __name__==

'__main__'

:# 寫入第一行,確定每列名稱

with

open

('data.csv'

,'w'

, newline=

'', encoding=

'utf-8'

)as csvfile:

writer = csv.writer(csvfile)

writer.writerow(

['number'

,'name'

,'motto'

,'score'])

# 一共10頁

for i in

range(0

,10):

selector=get_resource(i)

handle_info(i,selector)

解決excel開啟csv檔案亂碼,並儲存為excel檔案

pycharm中開啟csv檔案:

excel檔案:

本程式中對lxml未得到的格言,手動查詢,以空格賦值,不是很恰當,我也是想不出什麼好辦法,才這麼寫的,有其他解決辦法,望告知!

Python爬蟲入門(2) 爬蟲基礎了解

爬蟲,即網路爬蟲,大家可以理解為在網路上爬行的一直蜘蛛,網際網路就比作一張大網,而爬蟲便是在這張網上爬來爬去的蜘蛛咯,如果它遇到資源,那麼它就會抓取下來。想抓取什麼?這個由你來控制它咯。比如它在抓取乙個網頁,在這個網中他發現了一條道路,其實就是指向網頁的超連結,那麼它就可以爬到另一張網上來獲取資料。...

爬蟲入門 2

一 bs4的功能與使用 成功 from bs4 import beautifulsoup import requests r requests.get demo r.text soup beautifulsoup demo,html.parser print soup.prettify 有層次感的輸...

Python爬蟲入門

今天看了菜鳥教程的python教程,準備做個小作業寫個爬蟲程式。其中主要涉及到基本語法 正規表示式 urllib和re兩個模組。import urllib 載入模組 import re defgethtml url page urllib.urlopen url html page.read ret...