由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫。这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了。

源码展示

源码解析

这个爬虫主要由三个步骤构成:

读取文本中商品ID

循环爬取每个商品的信息

将信息保存到csv表格中

读取文本中的信息

由于是爬取给定的商品ID的宝贝的信息,所以需要一份包含商品ID的文本,文本中每行放入一个商品ID即可。

然后使用 Python 内置的方法,读取所有的商品ID并形成一个列表返回即可,这个过程可以封装到一个函数中,也即是下面这个:

这个函数看似没有传入参数,实际上因为是类的函数,所以有个参数是使用的类的属性,也就是文本的名称self.readname。文件的读写可以使用 with...as... 语句,这种操作比较简洁方便。

爬取页面信息

下面截图中红色部分即使要提取的信息部分:

本来想着可以直接找到 URL 构造的规律去使用requests来爬的,但是最终还是遇到了难度,于是没有办法,只好祭出selenium这个大杀器!

selenium 爬虫的本质就是模拟浏览器的操作,所以这个爬虫很简单,只需要模拟浏览器打开以下网页,然后找到自己要的信息,提取就行了。

具体代码也封装到了一个函数中,这个函数需要传递一个参数,也就是一个商品ID,用来构成 URL 以便爬虫使用。

这个函数主要进行的操作流程为:

1、打开浏览器

2、输入一个 URL

3、等待页面刷新之后查找信息标签

4、提取指定信息,然后使用封装好的函数写入表格

其中最重要的步骤是提取信息的过程,这个使用了智能等待,也就是设定一个超时,然后浏览器会在这个超时的时间内智能的多次查找指定的信息,直到找到信息就进行下一步,否则继续刷新页面查找,直到超时时间到达报错。

保存信息到表格

信息已经提取,就需要保存起来,因为这个爬虫是工作需要,而且量也比较小,所以最佳的保存信息的方式就是 CSV 的表格形式了,直接使用 Python 自带的 csv 模块就可以。

信息保存分为2个部分:

在程序运行的最初,创建一个表格,并且给表格写入标题

在每次爬完一个页面,就在表格中写入一条信息

所以,写入表格的代码其实就是分成2个部分来的。

第一部分:

这个部分创建了一个表格,并且可以看到,在爬虫类的的初始化中,已经运行了这个函数,也就是说,在爬虫创建的时候,就创建了一个表格。

self.get_csv()

第二部分:

这个函数就是封装的写入信息,需要传入一个参数,也就是已经提取到的信息,这个信息需要写成字典的格式,因为在表格中已经创建了标题,所以可以直接使用标题的值来作为字典的 key。

循环爬取

最后,将整个爬虫的逻辑封装到一个主函数main()中即可,并且,为了可以及时看到爬虫的运行进度,可以在控制台中打印爬虫的进度信息。

python刷新页面_Python模拟浏览器爬取天猫信息相关推荐

  1. Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息

    由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...

  2. python爬虫:Selenium模拟浏览器爬取淘宝商品信息

    1.数据提取前期网页分析 分析:淘宝网页数据也是通过Ajax技术获取的,但是淘宝的API接口参数比较复杂,可能包含加密密匙等参数:所以,想要通过自己构造API接口获取完整网页信息很难实现(可能只有部分 ...

  3. scrapy模拟浏览器爬取51job(动态渲染页面爬取)

    scrapy模拟浏览器爬取51job 51job链接 网络爬虫时,网页不止有静态页面还有动态页面,动态页面主要由JavaScript动态渲染,网络爬虫经常遇见爬取JavaScript动态渲染的页面. ...

  4. Python 爬虫实战,模拟登陆爬取数据

    Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...

  5. python网络爬虫_Python网络爬虫——爬取视频网站源视频!

    原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...

  6. 使用Python和selenium的Chromedriver模拟登陆爬取网站信息(beautifulsoup)

    爬取的信息很多,所以需要设置断点,在程序重启时能继续爬取.并且能在断掉之后自动重启. 1.setting.py 对爬取的常量进行设置 """ 基本信息设置 "& ...

  7. [Python Scrapy爬虫] 二.翻页爬取农产品信息并保存本地

    前面 "Python爬虫之Selenium+Phantomjs+CasperJS" 介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分 ...

  8. Python使用标准库urllib模拟浏览器爬取网页内容

    爬取网页内容的第一步是分析目标网站源代码结构,确定自己要爬取的内容在哪里,这要求对HTML代码有一定了解,对于某些网站内容的爬取还需要具有一定的Javascript基础.但是,如果目标网站设置了反爬机 ...

  9. Python爬虫实战03:用Selenium模拟浏览器爬取淘宝美食

    1 目标站点分析 淘宝页面信息很复杂的,含有各种请求参数和加密参数,如果直接请求或者分析Ajax请求的话会很繁琐.所以我们可以用Selenium来驱动浏览器模拟点击来爬取淘宝的信息.这样我们只要关系操 ...

最新文章

  1. 无需人脸检测,实时6自由度3维人脸姿态估计img2pose
  2. [LeetCode] 402. Remove K Digits Java
  3. linux svn 备份脚本,SVN热备份脚本
  4. java中的关键字transient说明
  5. [UE4]虚幻引擎UE4如何制作可拖动(Drag and Drop)的背包(Scrollbox)(转载)
  6. “Alexa,喂我吃草莓”机器人女仆现身,会做饭还会喂食
  7. 实习踩坑之路:LocalDateTime计算间隔天数,compareTo/Period的beetween方法导致的bug
  8. Acad多窗体并排展现
  9. CNVD、CNNVD、CICSVD等区别与联系详解
  10. Python数据分析实战:TMDB电影数据可视化
  11. ARCGIS拓扑检查步骤
  12. 三阶矩阵求特征值的快速算法
  13. 单片机 串口通信实验
  14. python 异步协程爬虫-半次元图片
  15. 如何自定义Android推送提示音,让你的应用与众不同
  16. linux安装docker crt证书,docker 如何添加证书
  17. 英语日常口语对话(3)
  18. 2017年第42届ACM-ICPC亚洲区域赛青岛赛区(现场赛)
  19. 传统机器学习分类模型预测股价涨跌
  20. 每日安全简讯20160719

热门文章

  1. Nature综述:皮肤微生物群-宿主相互作用
  2. R语言使用fs包的file_info函数查看文件元信息(属性信息)、使用file_chmod函数修改文件的权限、使用file_chown函数修改文件的所有者
  3. R语言dataframe合并函数merge实战
  4. R语言NaN函数实战(计数、替换、删除)
  5. plotly同时可视化表格与图(plotly Table and Chart )
  6. 常见消息队列对比(ActiveMQ、ZeroMQ、kafka、RabbitMQ)?
  7. 深度学习时间序列预测:LSTM算法构建时间序列单变量模型预测大气压( air pressure)+代码实战
  8. 高斯混合模型图像聚类、图像生成、可视化分析实战
  9. 集成学习+ensemble learning
  10. python123 https://github.com/jackfrued/Python-100-Days/tree/master/Day01-15