Python爬蟲程式設計實踐task2

2021-10-05 09:37:05 字數 2335 閱讀 1977

# 匯入包

import requests

import re

提交商品搜尋請求,迴圈獲取頁面

def

gethtmltext

(url)

:"""

請求獲取html,(字串)

:param url: 爬取**

:return: 字串

"""try:

# 新增頭資訊,

kv =

r = requests.get(url, timeout=

30, headers=kv)

# r = requests.get(url, timeout=30)

# print(r.status_code)

r.raise_for_status(

) return r.text

except

:return

"爬取失敗"

對於每個頁面,提取商品名稱和**資訊(完成正規表示式語句)

def

parsepage

(glist, html)

:'''

解析網頁,搜尋需要的資訊

:param glist: 列表作為儲存容器

:param html: 由gethtmltext()得到的

:return: 商品資訊的列表

'''try:

# 使用正規表示式提取資訊

#商品**

price_list = re.findall(r''

, html)

#商品名稱

name_list = re.findall(r''

, html)

for i in

range

(len

(price_list)):

price =

eval

(price_list[i]

.split(

":")[1

])#eval()在此可以去掉""

name =

eval

(name_list[i]

.split(

":")[1

])[price, name]

)except

:print

("解析失敗"

)

將資訊輸出到螢幕上

def

printgoodlist

(glist)

: tplt =

"\t\t"

print

(tplt.

format

("序號"

,"商品**"

,"商品名稱"))

count =

0for g in glist:

count = count +

1print

(tplt.

format

(count, g[0]

, g[1]

))

# 根據頁面url的變化尋找規律,構建爬取url

goods_name =

"書包"

# 搜尋商品型別

start_url =

""+ goods_name

info_list =

page =

3# 爬取頁面數量

count =

0for i in

range

(page)

: count +=

1try

: url = start_url +

"&s="

+str(44

* i)

html = gethtmltext(url)

# 爬取url

parsepage(info_list, html)

#解析html和爬取內容

print

("\r爬取頁面當前進度: %"

.format

(count *

100/ page)

, end="")

# 顯示進度條

except

:continue

printgoodlist(info_list)

Python爬蟲實踐

爬取的是盜版網的 免費 三寸人間 閱讀 請支援正版 以下是源 from urllib import request from bs4 import beautifulsoup import re 獲取html原始碼 response request.urlopen html response.rea...

python 爬蟲實踐

詳解 python3 urllib requests 官方文件 timeout 引數是用於設定請求超時時間。單位是秒。cafile和capath代表 ca 證書和 ca 證書的路徑。如果使用https則需要用到。context引數必須是ssl.sslcontext型別,用來指定ssl設定 cadef...

python爬蟲實踐目的 python 爬蟲實踐

python之路第一課day4 隨堂筆記 迭代生成裝飾器 上節回顧 1.集合 a.關係測試 b.去重 2.檔案操作及編碼 3.函式 4.區域性變數和全域性變數 上節回顧 本節課內容 1.迭代器生成器 2.裝飾器 3.json pickle資料序列化 4.軟體 winform panelcontrol...