序言
有時(shí)候不能什么都聽別人的窄做,更不能因?yàn)閯e人的意見而打亂了自己原有的計(jì)劃队询。學(xué)習(xí)亦是如此。
自己要學(xué)會(huì)為自己負(fù)責(zé)泼差,不要聽別人說什么就是什么。如果真是那樣呵俏,那么你自己的人生會(huì)過得非常的不好堆缘,會(huì)一團(tuán)糟。別人的只是建議普碎,最終還是由自己決定吼肥。
實(shí)戰(zhàn)
image.png
分析網(wǎng)頁結(jié)構(gòu),找到需要抓取的數(shù)據(jù)
通過鍵盤上的F12麻车,進(jìn)入抓包工具缀皱;選擇network。找到網(wǎng)址鏈接动猬,復(fù)制啤斗,這里我通過工具生成了,爬蟲的第一步赁咙。
image.png
第一步:請求網(wǎng)頁钮莲,獲取數(shù)據(jù)
import requests
cookies = {
'ipLoc-djd': '18-1482-0-0',
'__jda': '122270672.16518397672031804136707.1651839767.1651839767.1651839767.1',
'__jdb': '122270672.1.16518397672031804136707|1.1651839767',
'__jdc': '122270672',
'__jdv': '122270672|direct|-|none|-|1651839767204',
'__jdu': '16518397672031804136707',
'shshshfp': '87cadf909703202151c8e1474a13afd3',
'shshshfpa': '02b70092-666c-3062-b9c7-34f982cf66cc-1651839767',
'shshshsID': '31a0b5d9bde26515454c81a98f26afc0_1_1651839767922',
'qrsc': '1',
'rkv': '1.0',
'areaId': '18',
'shshshfpb': 'eyHp6y2gkEd9KWDMPokvLmg',
'3AB9D23F7A4B3C9B': 'WM36OJPCXSYAL6RQNC3SCAGUJYFA2MRPK7UARVZ2KFKX72DYWPF4AYGTUGGW3OZVSFJI5HXQGKNTZSKZAZC32PKKEM',
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Connection': 'keep-alive','Upgrade-Insecure-Requests': '1',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'none',
'Sec-Fetch-User': '?1',
'Cache-Control': 'max-age=0',
}
params = {
'keyword': '電腦',
}
# 1、 請求網(wǎng)絡(luò) - 得到網(wǎng)站返回的數(shù)據(jù)
response = requests.get('https://search.jd.com/Search', params=params, cookies=cookies, headers=headers)
# 打印 富文本
print(response.text)
image.png
第二步:提取商品數(shù)據(jù)
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text,'html.parser')
# 循環(huán)嵌套
for div in soup.find_all('div',class_="ml-wrap"):
print(div)
image.png
for div2 in soup.find_all('div',class_="goods-list-v2 gl-type-1 J-goods-list"):
for price in soup.find_all('div',class_="p-name p-name-type-2"):
for prices in soup.find_all('em'):
print(prices.text)
image.png
第三步: 持久化保存數(shù)據(jù)
這里使用了簡單的txt文件保存
file = open('京東.txt','a',encoding='utf-8')
file.write(prices.text+'\n')
image.png