Python+Selenium — 爬取京东搜索商品页数据

python爬虫实战:之爬取京东商城实例教程!(含源代码) 前言: 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧。 主要工具 scrapy BeautifulSoup requests 分析步骤 1、打开京东首页,输入裤子将会看到页面跳转到了这里,这就是我们要分析的起点 2、我们可以看到这个页面并不是完全的,当我们往下拉的时候将会看到图片在不停的加载,这就是ajax,但是当我们下拉到底的时候就会看到整个页面加载了60条裤子的信息,我们打开chrome的调试工具,查找页面元素时可以看到每条裤子 阅读详情

用 request 下载京东搜索商品页面源码后,发现得到的数据只有30条,怀疑京东搜索页面加载方式应该是动态渲染的,所以打算采用 Selenium 驱动谷歌浏览器来爬取搜索页面。

代码如下:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from lxml import etree
import time
import csv

class JDSelenium():

	def __init__(self,keyword,page,timeout=10,service_args=['--load-images=false', '--disk-cache=true']):
		
		self.keyword = keyword
		self.timeout = timeout
		self.page = page
		self.chrome_options = webdriver.ChromeOptions()
		self.chrome_options.add_argument('--headless')
		self.browser = webdriver.Chrome(chrome_options=self.chrome_options,service_args=service_args)
		self.browser.set_page_load_timeout(self.timeout)
		# 可以选择加载浏览器
		# self.browser = webdriver.Chrome()
		self.wait = WebDriverWait(self.browser,self.timeout)
		self.url = r'https://search.jd.com/Search?keyword={keyword}&enc=utf-8&page={page}'
		self.file = open('{keyword}.csv'.format(keyword=self.keyword),'w',newline='')
		self.write = self.create_writer()
		self.count = 0

	def close(self):
		
		self.browser.close()
		self.file.close()

	def create_writer(self):
		
		fieldnames = ['Title','Store','Price','Comments']
		writer = csv.DictWriter(self.file,fieldnames=fieldnames)	
		writer.writeheader()
		return writer

	def process_request(self,page):
		
		try:
			self.browser.get(self.url.format(keyword=self.keyword,page=page))
			self.wait.until(EC.presence_of_element_located((By.CLASS_NAME,"pn-next")))
			self.browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
			time.sleep(5)
			return etree.HTML(self.browser.page_source)
		
		#出现异常可以选择关闭,也可以选择继续执行
		except Exception as e:
			print(e)
			# self.process_request(page)
			self.close()

	def process_item(self,response):
		
		products = response.xpath('//*[@id="J_goodsList"]/ul//li[@class="gl-item"]')
		
		for product in products:
			item = {}
			if '自营' in product.xpath('.//div[@class="p-icons"]//i//text()'):
				#这里只爬取自营店的数据
				#分析页面发现有些商品虽是自营店的,但没有出现店名,所以采用 join() 拼接列表,防止出现空列表而报错的情况
				item['Store'] = ''.join(product.xpath('.//div[@class="p-shop"]/span/a/text()'))
				item['Title'] = ''.join(product.xpath('.//div[contains(@class,"p-name")]/a/em//text()'))
				item['Price'] = product.xpath('.//div[@class="p-price"]/strong/i/text()')[0]
				item['Comments'] = product.xpath('.//div[@class="p-commit"]/strong/a/text()')[0]
				self.count += 1
				self.write.writerow(item) 
			else:
				continue
		
	def run(self):
		
		for page in range(1,self.page+1):
			print('------正在爬取第{page}页------'.format(page=page))
			response = self.process_request(2*page-1)
			self.process_item(response)
			print('数据保存完成')

		self.close()
		print('共爬取到{count}条数据'.format(count=self.count))

if __name__ == '__main__':
	
	jd = JDSelenium(keyword='电脑',page=1)
	jd.run()
	

这里没有通过 selenium 获取需要的信息,而是等页面加载完成后通过网页源代码抽取需要的信息。其实本来是想写成 Scrapy+Selenium 的,但嫌弃 scrapy 框架太麻烦了,所以整合到一块了。

ps:由于请求链接后,需要等页面加载一部分然后滚动页面,最后再等待加载完成,耗费一点时间,所以爬取过程有点慢。*

python3下几个淘宝、天猫、京东爬虫实例。(价格、销量、评论等) Spiders on Tianmao Taobao JingDong 暂时只放两个 github地址https://github.com/lidongone/Spider_on_Tianmao_and_Taobao 京东、天猫、淘宝单功能爬虫Demo京东评论多线程爬取,并存入json 2014年5月29日 10:44:52 ====================测试结果==== 阅读详情

相关推荐

Python爬取京东商品信息

*使用Python爬取京东华为手机前十页的所有商品的链接、名称、价格、评价数以及店铺名称。 1.前期准备 (1)下载驱动 我使用的是谷歌浏览器,所以要下载谷歌驱动,用来告诉电脑在哪打开浏览器 驱动文件下载地址:http://chromedriver.storage.googleapis.com/index.html (需要下载与自己的浏览器版本相一致或者相近版本的驱动,要记住驱动下载之后存放的位置) ...

qq_44331100的博客 9530

jd价格爬虫

本爬虫利用专业的自动化测试工具Selenium模拟浏览器浏览京东商品,并在商品网页中抓取价格标签。本源码仅供学习用。 需要下载chrome驱动放到运行目录下: https://chromedriver.storage.googleapis.com/index.html?path=2.35/

python爬虫——用selenium爬取京东商品信息

python爬虫——用selenium爬取京东商品信息 1.先附上效果图(我偷懒只爬了4页) 2.京东的网址https://www.jd.com/ 3.我这里是不加载图片,加快爬取速度,也可以用Headless无弹窗模式 options = webdriver.ChromeOptions() options.add_experimental_option('prefs', {'profile....

心之所向的博客 7514

网络爬虫 | 京东全站数据采集(类目、店铺、商品、评论)——基于Python中Scrapy框架

123

也许有一天我们再相逢 睁开眼睛看清楚 我才是英雄! 3075

[Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等)

目录 一、环境 二、简介 三、京东网页分析 1.获取商品信息入口--商品列表链接获取 2.获取商品信息入口--商品详情链接获取 3.商品详情获取 4.商品评论获取 四、代码实现 五、运行结果 六、结语 一、环境 win10 + python 3.7 + pycharm64 + selenium 二、简介 抓取京东商品页面信息:商品名称,...

su_2018的博客 1万+

Selenium爬取京东商品评价,并进行基于情感词典的文本情感极性分析

Selenium爬取京东商品评价,并进行基于情感词典的文本情感极性分析1. 介绍及开发环境2. 爬虫实现2.1 请求构造2.2 提取信息2.3 数据存储2.4 运行结果3. 文本情感分析实现3.1 数据准备3.2 数据处理3.2.1 加载数据3.2.2 分词及分类3.3 计算情感得分3.4 运行结果4. 总结 1. 介绍及开发环境        通过Sele...

qq_32668801的博客 4599

Selenium实战之Python+Selenium爬取京东商品数据

实战目标:爬取京东商品信息,包括商品的标题、链接、价格、评价数量。 代码核心在于这几个部分: 其一:使用元素定位来获取页面上指定需要抓取的关键字; 其二:将页面上定位得到的数据永久存储到本地文件中。 具体来梳理一下从访问URL开始到爬取数据整个流程下来的各个节点我们都做了哪些工作。 1、准备接口数据 # 京东商城网址 url = 'https://www.jd.com/' 2、创建浏览器实例对象 # driver = webdriver.Firefox() # 创建 Firefox 浏览器实

Jane 8229

Python爬虫—爬取京东商品信息(自动登录,换关键词,换页)

目录前言一、需要的Python库安装1.设置默认pip默认安装路径2.下载浏览器驱动(以chrome为例)二、使用步骤(代码以函数为单位分开展示)1.引入库2.设置关键词和浏览器设置3.定义获取密码函数4.定义获取图片信息,返回最佳匹配位置函数5.定义滑动函数6.定义实现登录函数7.定义文件保存函数8.定义爬取函数9.定义首次运行函数10.定义继续运行函数11.定义主函数三、代码整体展示总结 前言 最近需要些简单的商品数据信息,听说淘宝反爬虫反的厉害,自己Python学习花的时间少,人菜的抠脚,就打起了

qq_45657504的博客 8120

python爬虫——selenium爬取京东商品信息

1. 先看效果 2. 目标网站 点击跳转 3. 解析,首先找到输入框的id 4. 找到之后编写代码 # 获取输入框的id,并输入关键字python爬虫 browser.find_element_by_id('key').send_keys('python爬虫') # 输入回车进行搜索 browser.find_element_by_id('key').send_ke...

小爬虫的博客 7804

Python网络爬虫-使用Selenium爬取京东商品

Python网络爬虫-模拟Ajax请求抓取微博中我们了解了Ajax的分析和抓取的方式,但是有很多的网站即使是Ajax来获取的数据,但是其Ajax接口含有很多加密参数,我们很难找出其中的规律,也就很难直接使用Ajax来抓取。 为了解决这些问题,我们可以直接使用模拟浏览器运行的方式来实现,这样就可以做到在浏览器中看到是什么样,抓取的源码就是什么样,也就是可见即可爬。这样我们就不用再去管网页内部的Ja...

徐先森的博客 1837

python爬虫-京东商品爬取

京东商品爬取 仅供学习 一.使用selenium from selenium import webdriver from selenium.webdriver.common.keys import Keys #键盘按键操作from selenium.webdriver.support import expected_conditions as EC import time def g...

Python博客 7412

【python爬虫】用python爬取京东口红商品

前几天学了点python,又去看了下爬虫怎么玩,于是闲的无聊想爬一下口红的数据 本来想爬淘宝天猫的数据,因为能直接看到单品的销量,结果被淘宝反爬的登录验证难到了。。嫌麻烦于是乎转战爬京东,京东的反爬是在是太。。那个啥了(难怪网上这么多爬虫教程都是教爬京东的),下面讲讲怎么爬取京东的商品数据 一、分析京东数据接口 直接在京东搜索口红 然后按F12打开开发者工具,在Network一栏选中Preserv...

weixin_42196771的博客 5241

【网络爬虫】基于Selenium爬取动态网页

目录一、Selenium介绍与配置1.Selenium简介2. Selenium+Python环境配置二、网页自动化测试1.启动浏览器并打开百度搜索2.定位元素三、爬取动态网页的名人名言1. 网页数据分析2. 翻页分析3.爬取数据的存储4. 爬取数据四、爬取京东网站书籍信息五、总结六、参考 一、Selenium介绍与配置 1.Selenium简介   Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。Selenium测试直接运行在浏览器中,可以模拟真实用户的行为。支持的

YangMax1的博客 1万+

python+selenium爬取京东商品数据

1.利用selenium爬取京东数据 (一)首先导入需要的类 下面再介绍这些类的使用方法 from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.support.wait import WebDriverWait as wait from...

weixin_43977647的博客 1852

京东商品的爬取

这里写自定义目录标题888新1715613413下面来说下整体代码思路吧和每个自定义的功能和自己做的小处理 888 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新17 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们...

京东商品信息爬取——我的第一个优快云 7773

使用selenium爬取京东商品搜索结果(名字、价格、评价数)

使用selenium爬取京东商品搜索结果(名字、价格、评价数)使用selenium爬取京东商品搜索结果(名字、价格、评价数)一、环境二、项目解析 使用selenium爬取京东商品搜索结果(名字、价格、评价数) Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 一、环境 Ubuntu18.04 Python3 PyCharm M...

csdn_start的博客 1580

python爬取京东商品信息与可视化

项目介绍:使用python爬取京东电商拿到价格、店铺、链接、销量并做可视化

HYSliuliuliu的博客 3883

利用python爬取京东数据

利用python爬取京东数据

上一篇: 爬虫 — curl转requests
下一篇: 爬虫 — 爬取携程的航班信息
Duke_LH
博客等级 码龄8年 73粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值