天天看点

python selenium 淘宝价格_Python使用Selenium+ChromeDriver+BeautifulSoup实现淘宝产品详情页数据爬取...

一、下载ChromeDriver

注意版本与Selenium对应,如果不清楚运行代码时会报错提示,只需要找到对应版本就行。

下载地址: http://npm.taobao.org/mirrors/chromedriver/

二、导入资源包

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from bs4 import BeautifulSoup

三、核心代码

if __name__ == '__main__':

chrome_options = Options()

# 设置chrome浏览器无界面模式

chrome_options.add_argument(') # 设置中文

# chrome_options.add_argument('window-size=1920x3000') # 指定浏览器分辨率

chrome_options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug

# chrome_options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面

chrome_options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度

chrome_options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败

# 设置手机请求头 (手机页面反爬虫能力稍弱)

chrome_options.add_argument(

'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Mobile Safari/537.36')

# 加载设置

browser = webdriver.Chrome(options=chrome_options)

url = "https://item.taobao.com/item.htm?spm=a230r.1.14.11.2e677cabjgUgYf&id=587148479406&ns=1&abbucket=2#detail"

# 开始请求

browser.get(url)

# 获取页面内容

html = BeautifulSoup(browser.page_source, 'html.parser')

# 选择有效数据

shop_name = html.select('.tb-shop-name a')

if shop_name:

shop_name = shop_name[0].get('title')

else:

shop_name = ''

print('店铺:' + str(shop_name))

# 关闭浏览器

browser.close()

# 关闭chreomedriver进程

browser.quit()

注意:

3、Selenium还具有显示等待和隐示等待,可以解决ajax渲染的数据无法爬取问题。具体查看文档

地址:https://www.seleniumhq.org/docs/cn/