序言
有时候不能什么都听别人的,更不能因为别人的意见而打乱了自己原有的计划。学习亦是如此。
自己要学会为自己负责,不要听别人说什么就是什么。如果真是那样,那么你自己的人生会过得非常的不好,会一团糟。别人的只是建议,最终还是由自己决定。
实战
image.png分析网页结构,找到需要抓取的数据
通过键盘上的F12,进入抓包工具;选择network。找到网址链接,复制,这里我通过工具生成了,爬虫的第一步。
image.png
第一步:请求网页,获取数据
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、 请求网络 - 得到网站返回的数据
response = requests.get('https://search.jd.com/Search', params=params, cookies=cookies, headers=headers)
# 打印 富文本
print(response.text)
image.png
第二步:提取商品数据
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text,'html.parser')
# 循环嵌套
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
第三步: 持久化保存数据
这里使用了简单的txt文件保存
file = open('京东.txt','a',encoding='utf-8')
file.write(prices.text+'\n')
image.png
网友评论