python爬虫代写价格_python爬取京东价格

1.爬取商品名

Apple iPhone 7 (A1660) 32G 黑色 移动联通电信4G手机

Apple iPhone 7 (A1660) 32G 黑色 移动联通电信4G手机

title = soup.select(.sku-name)[0].string.strip()

2.爬取价格

在京东的单个产品页面上,通过查看源码检查html,可以看到

这里没有直接给出价格。

这是因为价格数据是通过JS动态加载的,而HTML源码中并不包含动态加载的页面内容。

如何获取京东商品的价格

在火狐浏览器中安装了Firebug。右键点击商品价格,选择“使用Firebug查看元素”,可以看到打开的“HTML”中包含了价格信息。这是因为Firebug的”HTML”显示的是动态加载完所有数据后的源码。

这个就是针对价格请求返回的响应页面,其中”p”表示的就是商品的价格。

3.爬取好评率

代码如下

# -*- coding:utf-8 -*-

from bs4 import BeautifulSoup

import requests

import re

def get_page():

url = "https://item.jd.com/3133817.html"

headers = {

"User-Agent":"Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 5.1;360SE)"

}

reponse = requests.get(url,headers=headers)

if reponse.status_code == 200:

return reponse.text

return None

def prase_page(html):

result_list = []

result_dict = {}

soup = BeautifulSoup(html,html.parser)

title = soup.select(.sku-name)[0].string.strip()

price_url = "https://p.3.cn/prices/mgets?skuIds=J_3133817"

url_session = requests.Session()

price_req = url_session.get(price_url).text

price = re.findall(r"p":"(.*?)", price_req)

appraise_url = "https://sclub.jd.com/comment/productPageComments.action?&productId=3133817&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1"

appraise_session = requests.Session()

appraise_req = appraise_session.get(appraise_url).text

appraise = re.findall(r"goodRateShow":(d+),.*, appraise_req)

print(title)

print(price[0])

print(appraise[0])

# for tag in soup.find_all(div,class_=itemInfo-wrap):

# title = tag.find(div,class_=sku-name).get_text()

# # price = tag.find(span,class_=price J-p-3133817).get_text()

# p_price = tag.find(div,class_=dd)

# p_span = p_price.findAll(span)

# price = p_span[0].contents[1]

# print(price)

html = get_page()

prase_page(html)

经验分享 程序员 微信小程序 职场和发展