Python淘寶商品比價定向爬蟲
阿新 • • 發佈:2020-08-27
1.專案基本資訊
目標:獲取淘寶搜尋頁面的資訊,提取其中的商品名稱和價格
理解:淘寶的搜尋介面、翻頁的處理
很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!
QQ群:101677771
URL樣式:
2.程式的結構設計
步驟1:提交商品搜尋請求,迴圈獲取頁面
步驟2:對於每個頁面,提取商品名稱和價格資訊
步驟3:將資訊輸出到螢幕上
3.Cookie內容的獲取
由於淘寶的反爬機制,需要修改請求頭,新增Cookie資訊
執行結果:
4.程式碼
import requests
import re
def getHTMLText(url):
try:
# \連線多行
cookie_content = "miid=892389301891538214;cna=hnaTFWsdyW0CAXOXQdBBG5tX;\
isg=BLq60XalsXGNxj9VtCMK9zU6CODcaz5FjG8jisSzZs0Yt1rxrPuOVYDFA8NrPLbd;\
l=eBMzSVePqmS6XnjtBOfahurza77OSIOYYuPzaNbMiOCP_yfB5sONWZP-fYL6C31Vh6XJR3PXGizJBeYBqQAonxv92j-la_kmn;\
thw=cn; tfstk=cQdhB7bxgpWBz-kNMX1Blg1Sq2lAwNUFAtBw_CbpYp-U951mnRyVFGqCbAbYF;\
hng=CN%7Czh-CN%7CCNY%7C156; sgcookie=E4hGC1l%2FtzyLC76w2ysFN;\
tracknick=1234%5Cu75AF83386591;\
_cc_=WqG3DMC9EA%3D%3D;\
enc=ZXXKNl9itH049IdhJK2eMYLeK8%2FfcD3I1SIxwNzqIUCy8gm3lVnGIklgip9oskesaOCKOk1XtRfY96Hi%2F%2FhdKw%3D%3D;\
JSESSIONID=7B337485B801F235F7A9BE3504D975E1"
kv = {'cookie':cookie_content,'User-agent':'Mozilla/5.0'}
r = requests.get(url, timeout = 30, headers = kv)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ""
def parsePage(ilt, html):
try:
plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html)
tlt = re.findall(r'\"raw_title\"\:\".*?\"',html)
for i in range(len(plt)):
price = eval(plt[i].split(':')[1])
title = eval(tlt[i].split(':')[1])
ilt.append([price , title])
except:
print("")
def printGoodsList(ilt):
tplt = "{:4}\t{:8}\t{:20}"
print(tplt.format("序號", "價格", "商品名稱"))
count = 0
for g in ilt:
count = count + 1
print(tplt.format(count, g[0], g[1]))
def main():
goods = '書包'
depth = 3
start_url = 'https://s.taobao.com/search?q=' + goods
infoList = []
for i in range(depth):
try:
url = start_url + '&s=' + str(44*i)
html = getHTMLText(url)
parsePage(infoList, html)
except:
continue
printGoodsList(infoList)
main()