selenium 爬虫的数据实战

这篇具有很好参考价值的文章主要介绍了selenium 爬虫的数据实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

众所周知,Python 有很多的爬虫工具,例如,requests、scrapy、selenium等。但是爬虫有个最难搞的东西就是反爬虫了,使用 requests、scrapy框架爬取速度飞快,但是遇到反爬的网站就得斗智斗勇半天甚至好几天。因此,如果仅仅是一些小项目,没有必要使用其他工具,就使用 selenium 就可以了。

selenium 实战

selenium 的使用方法非常简单,需要进行一些配置,这里我使用的是 谷歌浏览器,其他浏览器请自行搜索~

安装 selenium
pip install selenium

安装谷歌浏览器以及谷歌浏览器驱动

浏览器驱动 是和 浏览器对应的。 不同的浏览器 需要选择不同的浏览器驱动。

目前主流的浏览器中,谷歌 Chrome 浏览器对 Selenium自动化的支持更加成熟一些。

推荐大家使用 Chrome浏览器 。

可以点击这里,下载安装谷歌浏览器

确保Chrome浏览器安装好以后,请大家打开下面的连接,访问Chrome 浏览器的驱动下载页面

Chrome 浏览器驱动下载地址

注意浏览器驱动 必须要和浏览器版本匹配,大版本一致就可以了。

比如,谷歌浏览器版本为 103,那么就下载 103 开头的就可以了~

selu爬虫,selenium,爬虫,python

省略浏览器驱动路径

下载的浏览器驱动是一个压缩包, 解压之后放到一个容易找到的位置,例如 C 盘根目录

我们可以把浏览器驱动 所在目录 加入环境变量 Path , 写代码时,就可以无需指定浏览器驱动路径了,像下面这样。

wd = webdriver.Chrome()

然后可以配置一些初始化的参数,代码这里我整理好了,直接拿去用就对了,url为1688网站,已经提前搜索了商品的url地址。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ChromeOptions,ActionChains

# 1688搜索页商品数据url
url = 'https://s.1688.com/selloffer/imall_search.htm?keywords=%C5%AE%D7%B0&n=y&netType=1%2C11%2C16&spm=a260k.22518165.search.0'

# 初始化浏览器
def driver_init():
    # 加载配置数据
    profile_dir = r'--user-data-dir=C:\Users\hjl\AppData\Local\Google\Chrome\User Data'
    c_option = webdriver.ChromeOptions()
    c_option.add_experimental_option('useAutomationExtension', False)
    c_option.add_experimental_option('excludeSwitches', ['enable-automation'])
    prefs = {
        'profile.default_content_setting_values':
            {
                'notifications': 2
            },
        'profile.password_manager_enabled': False,
        'credentials_enable_service': False
    }
    c_option.add_experimental_option('prefs', prefs)
    # 开发者模式防止被识别出
    # 网址:https://blog.csdn.net/dslkfajoaijfdoj/article/details/109146051
    c_option.add_experimental_option('excludeSwitches', ['enable-automation'])
    c_option.add_argument("--disable-blink-features=AutomationControlled")
    # c_option.add_experimental_option('w3c', False)
    c_option.add_argument(profile_dir)
    driver = webdriver.Chrome(chrome_options=c_option)
    # 执行cdp命令
    driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
        "source": """
                    Object.defineProperty(navigator, 'webdriver', {
                       get: () => undefined
                    })
                  """
    })
    return driver


接着,定义一个获取商品标题、价格、购买人数等参数的方法

def get_goods_info(driver):
    # 获取商品信息的列表
    goods_list =  driver.find_element(By.ID, 'sm-offer-list').find_elements(By.CLASS_NAME, 'space-offer-card-box')
    print('-----------------')
    print('开始爬取数据,数据长度为:', len(goods_list))
    for li in goods_list:
        link_div = li.find_element(By.CLASS_NAME, 'mojar-element-title').find_element(By.TAG_NAME, 'a')
        link = link_div.get_attribute('href')
        title = li.find_element(By.CLASS_NAME, 'mojar-element-title').find_element(By.CLASS_NAME, 'title').text

        try:
            # 这个地方容易报错,所以用try,不知道为什么,有毒
            price_div = li.find_element(By.CLASS_NAME, 'mojar-element-price')
            price = price_div.find_element(By.CLASS_NAME, 'showPricec').text
            sale_sum = price_div.find_element(By.CLASS_NAME, 'sale').text
            if sale_sum == '':
                sale_sum = '0'
        except:
            continue
        print('-----------------')
        print(title, price, sale_sum)

最后,使用程序入口函数启动爬虫程序~

注意,因为1688有部分商品数据是需要动态加载的,因此我们需要让爬虫程序滑动一下页面,触发数据加载之后再去爬取。

# 程序入口
if __name__ == '__main__':
    driver = driver_init()
    driver.implicitly_wait(3)  
    # 打开链接获取商品信息
    driver.get(url)
    # 睡眠1秒,等待浏览器加载完毕
    time.sleep(2)
    # 循环爬取40页数据
    for i in range(40):
        print(f'-----------------第{i+1}页-----------------')
        # 等待浏览器加载完毕
        driver.implicitly_wait(7)
        # 获取当前窗口句柄
        original_window = driver.current_window_handle
        # 获取下一页的按钮
        next_btn = driver.find_element(By.CLASS_NAME, 'fui-next')
        time.sleep(1)
        # 慢慢向下滚动
        for i in range(1, 3):
            driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
            time.sleep(1)
        # 再慢慢向上滚动
        for i in range(1, 3):
            driver.execute_script("window.scrollTo(0, 0);")
            time.sleep(1)
        # 滑动鼠标到页面中部
        ActionChains(driver).move_by_offset(0, 300).perform()
        time.sleep(1)

        # 获取商品信息
        get_goods_info(driver)
        # 点击下一页
        try:
           next_btn.click()
        except:
            break


---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上时代呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

selu爬虫,selenium,爬虫,python

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

selu爬虫,selenium,爬虫,python
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

selu爬虫,selenium,爬虫,python
selu爬虫,selenium,爬虫,python

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!selu爬虫,selenium,爬虫,python

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

selu爬虫,selenium,爬虫,python

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

selu爬虫,selenium,爬虫,python

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

selu爬虫,selenium,爬虫,python

六、面试宝典

selu爬虫,selenium,爬虫,python

selu爬虫,selenium,爬虫,python

简历模板selu爬虫,selenium,爬虫,python
selu爬虫,selenium,爬虫,python
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除文章来源地址https://www.toymoban.com/news/detail-781997.html

到了这里,关于selenium 爬虫的数据实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 〖Python网络爬虫实战㉙〗- Selenium案例实战(三)

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                  python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月07日
    浏览(42)
  • (十四)python网络爬虫(理论+实战)——爬虫利器selenium详解

    目录 6 selenium的介绍和使用      6.1 爬虫遇到的难点

    2023年04月08日
    浏览(30)
  • 〖Python网络爬虫实战㉚〗- Selenium节点

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月13日
    浏览(33)
  • selenium 爬虫的数据实战

    引言 众所周知,Python 有很多的爬虫工具,例如,requests、scrapy、selenium等。但是爬虫有个最难搞的东西就是反爬虫了,使用 requests、scrapy框架爬取速度飞快,但是遇到反爬的网站就得斗智斗勇半天甚至好几天。因此,如果仅仅是一些小项目,没有必要使用其他工具,就使用

    2024年02月02日
    浏览(25)
  • Python与Selenium库(含爬虫实战例子)

    Selenium是一个自动化测试工具,利用它可以驱动浏览器模拟用户在页面上的操作,例如:点击,输入,选择等行为,使我们可以通过编写Python脚本来进行web页面的自动化测试。 Selenium包含三个部分:Selenium IDE、Selenium Grid和Selenium WebDriver,其中,Selenium WebDriver是我们所需要用到

    2024年02月02日
    浏览(40)
  • Python爬虫之selenium深入解读【从入门到实战】

    在爬虫中占据比较重要的地位 是一种浏览器自动化的工具,所谓的自动化是指,我们可以通过代码的形式制定一系列的行为动作,然后执行代码,这些动作就会同步触发在浏览器中。 我们在抓取一些普通网页的时候requests基本上是可以满足的. 但是, 如果遇到一些特殊的网站

    2024年01月22日
    浏览(31)
  • python爬虫实战 scrapy+selenium爬取动态网页

    最近学习了scrapy爬虫框架,想要找个目标练练手。由于现在很多网页都是动态的,因此还需要配合selenium爬取。本文旨在记录这次学习经历,如有疑问或不当之处,可以在评论区指出,一起学习。 对scrapy不了解的同学可以阅读这篇文章 爬虫框架 Scrapy 详解,对scrapy框架介绍的

    2024年02月07日
    浏览(62)
  • 〖Python网络爬虫实战㉛〗- Selenium 的其他操作使用

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月16日
    浏览(30)
  • Python爬虫实战之爬淘宝商品--selenium+Xpath

    代码链接 利用selenium来自动翻页爬取淘宝商品的标题,价格,销量,产地信息。 导入库: 注意自己配置好python环境(谷歌驱动…) 利用selenium,手动登录获取cookie保存在本地用于登录平台(便于测试代码),访问商品页url通过Xpath选中对象拿数据,翻页,通过Xpath选中对象拿数据,翻页

    2024年02月04日
    浏览(40)
  • 爬虫与数据分析项目实战2.1 Selenium爬取Boss招聘信息

    完成: 1.爬取信息 2.基于爬取结果筛选符合条件的信息    岗位名称、薪资、岗位要求、地区、公司名称、公司规模、细节链接 3.筛选base杭州的岗位保存到csv文件中 But容易出现网络不稳定造成的无法定位元素所在位置的情况,小范围爬取可以 4.基于csv分析后续

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包