快捷搜索:  汽车  科技

python爬虫全套教程第66讲(Python爬虫实战selenium模拟登录)

python爬虫全套教程第66讲(Python爬虫实战selenium模拟登录)csv模块lxml模块selenium模块time模块requests模块

前言

今天为大家带来利用Python模拟登录京东书籍商品数据抓取,废话不多说。

Let's start happily

python爬虫全套教程第66讲(Python爬虫实战selenium模拟登录)(1)

开发工具

Python版本: 3.6.4

相关模块:

selenium模块

time模块

requests模块

lxml模块

csv模块

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

思路分析

本文以爬虫抓取京东书籍商品,讲解如何爬取模拟登录京东抓取数据

1.获取页面信息

class JdSpider(object): def __init__(self): self.i = 0 self.url = "https://www.jd.com" self.browser = webdriver.Chrome(r"C:/python-3.9.6-embed-amd64/Application/chromedriver.exe")2.获取页面信息 --到具体商品页面

def get_html(self): # self.browser.set_window_size(1200 800) # 控制浏览器大小 # self.browser.back() # 浏览器后退 # self.browser.forward() # 浏览器前进 self.browser.get(self.url) self.browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument" { "source": """Object.defineProperty(navigator 'webdriver' {get: () => undefined})"""}) a = input('请输入你想要的商品:') self.browser.find_element_by_xpath('//*[@id="key"]').send_keys(a)3.解析页面

# 解析页面 def parse_html(self): # 把下拉菜单拉到底部 执行JS脚本 self.browser.execute_script('window.scrollTo(0 document.body.scrollHeight)') time.sleep(2) # 提取所有商品节点对象列表 li列表 li_list = self.browser.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li')

结果展示

python爬虫全套教程第66讲(Python爬虫实战selenium模拟登录)(2)

4.创建csv,写入header

# 创建csv fp = open('京东商品信息爬取.csv' 'wt' newline='' encoding='utf-8') # 写入header writer = csv.writer(fp) writer.writerow(('价格' '评价' '出版社' '商品信息' )) for li in li_list: info_list = li.text.split('\n') if info_list[0].startswith('每满') or info_list[1].startswith('¥'): price = info_list[1] name = info_list[2] comment = info_list[3] shop = info_list[4] elif info_list[0].startswith('单件'): price = info_list[3] name = info_list[4] comment = info_list[5] shop = info_list[6] else: price = info_list[0] name = info_list[1] comment = info_list[2] shop = info_list[3] writer.writerow((price comment shop name)) print(price comment shop name)

结果展示

python爬虫全套教程第66讲(Python爬虫实战selenium模拟登录)(3)

猜您喜欢: