前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[Python私活案例]24行代码,轻松赚取400元,运用Selenium爬取39万条数据

[Python私活案例]24行代码,轻松赚取400元,运用Selenium爬取39万条数据

作者头像
double
发布于 2023-01-04 11:16:02
发布于 2023-01-04 11:16:02
1.2K00
代码可运行
举报
文章被收录于专栏:算法channel算法channel
运行总次数:0
代码可运行

今天分享一单来自金主爸爸的私单,运用简单的爬虫技巧,可以有效的规避反爬机制,正所谓“你有张良计,我有过云梯”。这个案例也很好的体现了python语音的优势,规避了非常复杂的底层逻辑,所见即所得,30分钟收入200。。

1.1 爬虫的思路及分析

当我们接到一个爬虫的单子时,一定要先分析思路,程序员的工作思路往往比代码更重要,思路对了,代码不会还可以查,思路错了,就只能在无尽的报错中呵呵了~~

我接到这个私单,是爬取今年以来的菜市场物价,客户提供的网站为“北京新发地”。可以看到,数据有19733页,每页20条,一共39万多条信息

通过初步的尝试和分析,网站具有一定的反爬机制,点击下一页后,网页并不会整体刷新,替换的只是其中的表格,查看网页源代码,表格部分的来源也是加密的。如果按照以往的方法,就需要复杂的解密,然后再找出页面之间的规律,此时,就凸显出Selenium的优势了。

1.2 Selenium的作用及环境配置

作用:它可以打开浏览器,然后像人一样去操作浏览器。

环境搭建:1、pip install selenium

2、下载对应“XX浏览器驱动”,解压后的文件放在Python解释器(对应虚拟环境中),下面以谷歌浏览器驱动为例子。

解压后的文件。

在pycharm中可以看到配置的环境在哪里。

最后放置时,记得检查驱动命名后面是否有数字等符号,记得去掉。

1.3 代码部分

1、首先是导入使用的模块:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import time  #时间模块
from selenium.webdriver import Chrome  #浏览器驱动模块
from selenium.webdriver.chrome.options import Options  #无头浏览器模块
import csv  #csv的读写模块

2、配置无头浏览器参数(代码基本固定,复制就可使用,配置后,在代码运行中不会再弹出浏览,而是改为后台操作)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
opt = Options()
opt.add_argument("--headless")
opt.add_argument("--disbale-gpu")

3、创建一个浏览器对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
web = Chrome(options=opt)  #创建一个浏览器对象
web.get("http://www.xinfadi.com.cn/priceDetail.html")  #用浏览器打开一个网站
time.sleep(3)  # 休息3秒,selenium的缺点就是慢,必须等待上一步完成后才能执行下一步操作,否则容易报错

4、创建一个CSV文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ex = open("xinfadi_caijia2.csv", mode="w", encoding="utf8")  #打开一个文件
csvwriter = csv.writer(ex)  #设置写入的路径

5、获取表头的xpath,并写入csv文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xpath_ex = '//*[@id="bbs"]/div/div/div/div[4]/div[1]/div/table/thead/tr'  #运用开发者工具,获取目标信息的xpath
ex_header = web.find_element_by_xpath(xpath_ex).text.split(' ')  #抓取并转换为列表信息
# print(ex_header)  #到这步时可以先测试一下是否能获取到信息
csvwriter.writerow(ex_header)  #将表头写入csv文件

6、运用循环抓取并保存页面信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num = 0  # 初始化一个页码计数器,用于记录翻页次数
for i in range(0,19803):
    nr_ex = '//*[@id="tableBody"]'  #内容的xpath
    ex_diyiye = web.find_element_by_xpath(nr_ex).text.split(' ')  #提取出内容
    csvwriter.writerow(ex_diyiye)  #写入csv文件
    num = num + 1
    xpath_next = f'//*[@id="layui-laypage-{num}"]/a[7]'  #获取下一页的xpath
    click_next = web.find_element_by_xpath(xpath_next).click()  #定位下一页的xpath
    time.sleep(3)  # 休息3秒

#同上,作用是最后一页的内容的抓取与写入
nr_ex = '//*[@id="tableBody"]'  
ex_diyiye = web.find_element_by_xpath(nr_ex).text.split(' ')  
csvwriter.writerow(ex_diyiye)  

#关闭文件
ex.close()

1.4 总结

简单的24行代码,即可抓取39万条有用的数据,这便是Python的优势。

以上只是selenium的简单运用,代码的写法也是面向过程,虽然比较繁琐,但是易于理解,除此之外,selenium还有实现“按键”、“拖动滑动条”、“输入”等功能,结合图片识别网站,可以实现例如自动登录、自动发送、抢购等许多功能,在这里只是抛砖引玉,谢谢!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python爬取某宝商品数据案例:100页的价格、购买人数等数据
随着互联网时代的到来,人们更加倾向于互联网购物,某宝又是电商行业的巨头,在某宝平台中有很多商家数据,今天带大家使用python+selenium工具获取这些公开的。
松鼠爱吃饼干
2020/09/15
1.6K0
Python爬取某宝商品数据案例:100页的价格、购买人数等数据
python+selenium+pyquery实现数据爬虫
首先我们本次爬虫的任务是完成某采购网站的信息爬取,省去人工耗费的时间。快速筛选出我们的需要的指定信息。然后将招标信息的标题、链接、和时间找出来,并保存到Excel。
用户6367961
2020/12/01
9230
python+selenium+pyquery实现数据爬虫
Python|简单爬取豆瓣网电影信息
在掌握一些基础的爬虫知识后,就可以尝试做一些简单的爬虫来练一练手。今天要做的是利用xpath库来进行简单的数据的爬取。我们爬取的目标是电影的名字、导演和演员的信息、评分和url地址。
算法与编程之美
2020/05/16
1.2K0
selenium 爬取淘宝相关数据
此程序使用selenium 爬取淘宝相关数据,爬取过程需要扫码登录一下,并且最终将数据存入json文件,爬取时间大概在几分钟左右
码农GT038527
2024/09/16
2470
selenium 爬取淘宝相关数据
python实战案例
这两个着重说一下,写爬虫用的最多的就是惰性匹配 *?表示尽可能少的让*匹配东西
苏州程序大白
2022/05/27
3.6K0
python实战案例
从登陆到爬取:Python反反爬获取某宝成千上万条公开商业数据
chrom浏览器的驱动器下载地址:http://npm.taobao.org/mirrors/chromedriver/
荣仔_最靓的仔
2021/02/02
1.2K0
从登陆到爬取:Python反反爬获取某宝成千上万条公开商业数据
实战案例 | Scrapy 集成Selenium爬取智联招聘数据
初学scrapy之后,发现就是效率对比于selenium和requests快了很多,那么问题来了,如果网站设置了反爬,比如User-Agent反爬,cookie反爬,IP封禁等等,所以我们需要通过集成selenium到scrapy中,绕过网站反爬,达到目的。
快学Python
2021/08/09
1.6K0
利用selenium尝试爬取豆瓣图书
目录 一、小小课堂 二、selenium+driver初步尝试控制浏览器 三、完整代码 四、运行结果 链接:https://search.douban.com/book/subject_searc
Python研究者
2020/11/24
1.4K0
Selenium爬取京东商品案例
Selenium爬取京东衣服评论 16/10 周三 晴 需要的模块: from selenium import webdriver from lxml import etree import ti
Python知识大全
2020/02/13
7170
Selenium爬取京东商品案例
Selenium 动态爬取51job招聘信息
通过selenium的find_element_by_id 找到 id = 'kwdselectid',然后send_keys('关键字')即可模拟用户输入
py3study
2020/11/03
1.3K1
Selenium 动态爬取51job招聘信息
基于selenium爬取拉勾网职位信息
  Selenium 本是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。而这一特性为爬虫开发提供了一个选择及方向,由于其本身依赖于浏览器,所以使用Python的selenium库的前提是:需要下载相应的浏览器驱动程序,这里附上Chromedriver的下载地址:chromedriver;(64位的向下兼容,)
py3study
2020/01/16
6940
爬虫 | selenium之爬取网易云音乐歌曲评论
本文内容是利用 Selenium 爬取网易云音乐中的歌曲 《Five Hundred Miles》 的所有评论,然后存储到 Mongo 数据库。
咸鱼学Python
2019/10/09
2.1K0
爬虫 | selenium之爬取网易云音乐歌曲评论
Python爬虫 selenium自动化 利用搜狗搜索爬取微信公众号文章信息
下面以在搜狗里搜索 网易云热评墙 为例,爬取得到的全部文章信息(包括标题、日期、链接),并保存到Excel,使用Selenium来实现。
叶庭云
2020/09/17
3.3K0
Python爬虫  selenium自动化  利用搜狗搜索爬取微信公众号文章信息
实战 | 教你快速爬取热门股票,辅助量化交易!
量化交易有一个非常重要的指标 AR,它是通过固定公式计算出的,用于反映市场买卖人气的技术指标
AirPython
2022/12/29
1.5K0
实战 | 教你快速爬取热门股票,辅助量化交易!
selenium登录爬取网站数据
我们发现登录目标网站只需填写用户的信息,然后填写验证码既可以登录网站,明确需求以后我们开始操作
小明要加油
2023/05/15
7380
用Selenium来爬取数据?真挺简单的!
于是Selenium就应运而生了,它可以算的上是自动化测试框架中的佼佼者,因为它解决了大多数用来爬取页面的模块的一个永远的痛,那就是Ajax异步加载 。今天将给大家详解如何用Selenium爬取数据,并最后附上一个真实的案例。
快学Python
2021/08/09
4.8K0
爬虫案例1-爬取图片的三种方式之一:selenium篇(2)
继使用requests库爬取图片后,本文使用python第三方库selenium来进行图片的爬取,后续也会使用同样是自动化测试工具DrissionPage篇来进行图片的爬取。
laity
2024/08/20
3770
爬虫案例1-爬取图片的三种方式之一:selenium篇(2)
Selenium——控制你的浏览器帮你爬虫
大家应该都有过从百度文库下载东西的经历,对于下载需要下载券的文章,我们可以办理文库VIP;又或者使用“冰点文库”这样的下载软件,但是对于会爬虫的人来说,当然就是把他爬下来。
CristianoC
2020/05/31
2.3K0
Selenium自动化|爬取公众号全部文章,就是这么简单
大家好,今天我们来讲点Selenium自动化,你是否有特别喜欢的公众号?你有思考过如何将一个公众号历史文章全部文章爬下来学习吗?现在我们以早起Python为例,使用Selenium来实现
刘早起
2020/05/13
2.6K0
Selenium自动化|爬取公众号全部文章,就是这么简单
手把手教你用Selenium爬取拉勾网数据!
大家好,在之前我们讲解过很多基于requests+bs4的爬虫,现在换个口味,本文将基于Selenium讲解如何爬取并使用openpyxl存储拉勾网招聘数据。
刘早起
2020/11/05
1.5K0
推荐阅读
相关推荐
Python爬取某宝商品数据案例:100页的价格、购买人数等数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验