python老王卖西瓜_使用Python爬取京东商品晒单图
本文我们将尝试下载如下所示的京东商品晒单图。
来到京东首页,在搜索框中输入关键字,比如:手机。打开浏览器的开发者工具(Ctrl+Shift+I),切换到Network选项。
点击按钮搜索之前输入的关键词,可以看到有如下请求:
请求带到服务器的参数主要有:
keyword: 手机
enc: utf-8
响应内容为一个HTML文件,包含了搜索到的商品的URL。
访问搜索到的某个商品,同样打开浏览器的开发者工具,切换到Network选项,可以看到有如下请求(没有看到的话刷新一下页面):
返回的数据包含了评论相关的数据,晒单图也在其中。
至此,我们将整个过程分析完毕,用代码实现上述过程即可。
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import re
import os
import json
def parse_goods_url(keyword):
headers = {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
}
params = {"keyword": keyword, "enc": "utf-8"}
base_url = "https://search.jd.com/Search"
response = requests.get(base_url, params=params, headers=headers)
soup = BeautifulSoup(response.text, "lxml")
goods_url_list = soup.select("#J_goodsList .gl-item .p-name a")
for good in goods_url_list:
yield urljoin("https://item.jd.com", good.get("href"))
def get_good_comment_image_url(good_url, page_num=1):
headers = {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
"Referer":
good_url
}
productId = re.findall("(\d+)", good_url)[0]
base_url = "https://sclub.jd.com/comment/productPageComments.action"
for page in range(page_num):
params = {
"callback": "fetchJSON_comment98vv3487",
"productId": productId,
"score": 0,
"sortType": 5,
"page": page,
"pageSize": 10,
"isShadowSku": 0,
"fold": 1
}
response = requests.get(base_url, params=params, headers=headers)
origin_data = re.findall("(\{.*\})", response.text)[0]
comments = json.loads(origin_data)["comments"]
for comment in comments:
for image in comment.get("images"):
yield urljoin(base_url, image.get("imgUrl"))
def download_image(image_url, good_url):
file_name = image_url.split('/')[-1]
fold_name = re.findall("(\d+)", good_url)[0]
if not os.path.exists(fold_name):
os.makedirs(fold_name)
headers = {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
"Referer":
good_url
}
response = requests.get(image_url, headers=headers)
with open("{}/{}".format(fold_name, file_name), "wb") as f_obj:
f_obj.write(response.content)
if __name__ == '__main__':
keyword = "手机"
for url in parse_goods_url(keyword):
print("商品:{}".format(url))
for image_url in get_good_comment_image_url(url):
print("下载:{}".format(image_url))
download_image(image_url, url)
运行结果如下:
python老王卖西瓜_使用Python爬取京东商品晒单图相关推荐
- python老王卖西瓜_搞不懂Python?大神教你用Python买西瓜!
什么是code? code就就是一种语言,一种计算机能读懂的语言.计算机是一个傻*,他理解不了默认两可的任何东西.比如,你让你老公去买个西瓜,你老公会自己决定去哪里买,买几个,找个搞活动打折的买,总之 ...
- go爬虫和python爬虫哪个好_python 爬虫实战项目--爬取京东商品信息(价格、优惠、排名、好评率等)-Go语言中文社区...
利用splash爬取京东商品信息 一.环境 window7 python3.5 pycharm scrapy scrapy-splash MySQL 二.简介 为了体验scrapy-splash 的动 ...
- python老王卖西瓜_Python难懂?买一次西瓜就懂了!
点击蓝色字关注 "CU技术社区" 一起玩耍哦~ 什么是code? code就就是一种语言,一种计算机能读懂的语言.计算机是一个傻*,他理解不了默认两可的任何东西.比如,你让你老公去 ...
- python爬虫爬取京东商品评价_网络爬虫-爬取京东商品评价数据
前段时间做商品评价的语义分析,需要大量的电商数据,于是乎就自己动手爬取京东的数据.第一次接触爬虫是使用selenium爬取CNKI的摘要,基于惯性思维的我仍然想用selenium+Firefox的方法 ...
- python爬取京东商品数据要先登录_手把手教你用python 爬取京东评论
本次python实战,主要目标是利用 Python爬取京东商品评论数,如上图所示:爬取"Python之父"推荐的小蓝书,这些信息主要包括用户名.书名.评论等信息. 爬取的网址url ...
- Python爬取京东商品评论数据
一.前言 本文将承接笔者的上篇文章Python爬取京东商品数据,使用京东商品唯一id字段"sku"拼接url,得到真实的京东商品评论网址,进而解释数据并保存到文件中,所爬取到的数据 ...
- Python动态爬虫爬取京东商品评论
Python 动态爬虫爬取京东商品评论 1. 概述 京东商城是Python爬虫初学者试手的经典平台,反爬虫程度较低,但评论采取了动态加载的方式,爬取京东商品评论是学习动态爬虫的一个极佳方法. 动态爬虫 ...
- Python爬取京东商品评论
京东商城的页面不是静态页面,其评论信息存放于json文件中,由ajax控制,所以我们在浏览器上看到的网页源代码和用Python爬下来的是不一样的,所以我们真正要爬取的是评论数据所存放的json文件. ...
- Python爬取京东商品评论和图片下载
Python爬取京东商品评论和图片下载 代码仅供学习使用,切勿扩散并且频繁爬取网站 贴上代码和注释,方便自己下次看 import requests import time import json im ...
最新文章
- 对着电脑笑了二十分钟(2)
- http与https的区别,http 1.0与1.1的区别
- forward 和redirect
- Log4Net配置使用简记
- Android 使用MediaPlayer播放assets或者raw目录的音频文件
- 一个最简单的用SAP UI5实现的live search demo,完整代码只有55行
- js贪心算法---背包问题
- 第四节:HTML5给表单带来的新标签、新属性、新类型
- Bootstrap 流式布局
- 懂得智能配色的ImageView,还能给自己设置多彩的阴影(PaletteImageView)
- linux 挂载raid_linux初学者-磁盘阵列篇
- swift获取图片像素颜色值
- 从最大似然再看线性回归
- 【礼仪大赛策划方案手段】 问穿正装的礼节是什么?到底何为正装?休闲正装?
- 用excel制作双层饼图_原创教程:用Excel做动态双层饼图
- 项目【QT5.13频谱分析软件】(一)——开篇介绍
- amd cpu排行_目前cpu排行榜(2020cpu性能排名对比)
- JAVA基础算法练习(5):行星碰撞
- 哲理故事与管理之道(22)-用竞争激励下属
- MacBook:如何拆卸或安装内存
热门文章
- Python教程:zip 函数的用法
- python os模块详细用法
- python获取数组中最多的元素
- python3 的 str bytes 区别
- 学python必须知道的30个技巧
- javascript技术教程蔡敏_程序员都必掌握的前端教程之JavaScript基础教程(上)
- pycharm 如何将同一项目中不同模块代码分屏显示
- 线程中start()与run()的区别
- python numpy ufunc.reduce(self, a, axis=0, dtype=None, out=None, keepdims=False)函数.(连续执行原始运算对值聚合)
- python 如何遍历文件夹下所有图片/文件? os.walk() os.listdir()