Python爬虫实战,selenium模拟登录,Python实现抓取某东商品数据

liftword2个月前 (02-06)技术文章24

前言

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

Let's start happily

开发工具

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')

结果展示

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)

结果展示

相关文章

从原理到实战,一份详实的 Scrapy 爬虫教程

来源:早起Python作者:饮马长江大家好,我是早起。之前分享了很多 requests 、selenium 的 Python 爬虫文章,本文将从原理到实战带领大家入门另一个强大的框架 Scrapy。如...

30分钟掌握用Python写网络爬虫,入门到实战教程,黑客入门第一步

在如今的大数据时代,相信大家都对Python一词有所耳闻。而Python爬虫,简单来说,即通过Python程序获取对我们有用的数据。常用于商业分析,不过偶尔也可以辅助我们解决在日常生活中遇到的一些问题...

盘点一个使用playwright实现网络爬虫的实战案例

大家好,我是皮皮。一、前言前几天在Python白银交流群【空翼】问了一个Pyhton网络爬虫的问题,这里拿出来给大家分享下。二、实现过程【喜靓仔】提出用playwright实现,后来他自己给出了代码,...

「2022 年」崔庆才 Python3 爬虫教程 Session + Cookie 模拟登录实战

在上一节我们了解了网站登录验证和模拟登录的基本原理。网站登录验证主要有两种实现方式,一种是基于 Session + Cookies 的登录验证,另一种是基于 JWT 的登录验证。接下来两节,我们就通过...

Python爬虫实战,链家二手房数据轻松抓取!

随着大数据时代的到来,数据分析已经成为各行各业的重要竞争力。而数据采集作为数据分析的前置步骤,其重要性不言而喻。今天,我们就来聊聊如何使用Python爬虫技术,轻松抓取链家二手房数据。本文将带你了解爬...

2024,Python爬虫系统入门与多领域实战

载ke程:itzcw.com/9676/2024,Python爬虫系统入门与多领域实战指南摘要:本文将带领读者了解Python爬虫的基本概念、技术构成,并通过多个领域的实战案例,展示Python爬虫在...