美文网首页python计算机专业学习笔记
用Python selenium实现自动化网页抓取器

用Python selenium实现自动化网页抓取器

作者: 我爱学python | 来源:发表于2019-06-18 16:27 被阅读48次

    直接入正题---Python selenium自动控制浏览器对网页的数据进行抓取,其中包含按钮点击、跳转页面、搜索框的输入、页面的价值数据存储、mongodb自动id标识等等等。

    1、首先介绍一下 Python selenium ---自动化测试工具,用来控制浏览器来对网页的操作,在爬虫中与BeautifulSoup结合那就是天衣无缝,除去国外的一些变态的验证网页,对于图片验证码我有自己写的破解图片验证码的源代码,成功率在85%。

    2、beautifulsoup就不需要详细的介绍了,直接上网址-https://www.crummy.com/software/BeautifulSoup/bs4/doc/(BeautifulSoup的官方文档)

    3、关于mongodb的自动id的生成。mongodb中所有的存储数据都是有固定的id的,但是mongodb的id对于人类来讲是复杂的,对于机器来讲是小菜一碟的,所以在存入数据的同时,我习惯用新id来对每一条数据的负责!

    在Python中使用mongodb的话需要引进模块from pymongo import MongoClient,ASCENDING, DESCENDING ,该模块就是你的责任!

    接下来开始讲程序,直接上实例(一步一步来):

    引入模块:

    其中的每一个模块都会说已经解释过了,其中的re、requests都是之前就有提过的,他们都是核心缺一不可!

    首先,我举一个小例子,淘宝的自动模拟搜索功能(源码):

    先说一下selenium 的定位方法

    find_element_by_id

    find_element_by_name

    find_element_by_xpath

    find_element_by_link_text

    find_element_by_partial_link_text

    find_element_by_tag_name

    find_element_by_class_name

    find_element_by_css_selector

    源码:

    效果的实现,你们可以直接复制后直接运行!我只用了xpath的这个方法,因为它最实在!橙色字体(如果我没有色盲的话),就是网页中定位的元素,可以找到的!

    接下来就是与BeautifulSoup的结合了,但是我们看到的只是打开了网页,并没有源码,那么就需要 “变量名.page_source”这个方法,他会实现你的梦想,你懂得?

    下面就是BeautifulSoup的一些语法操作了,对于数据的结构还有采集,在上一篇里面有详细的抓取操作!!!

    算了!说一个最简单的定位抓取:

    class的标签必须是class_,一定要记住!

    哈哈哈!mongodb了昂,细节细节,首先需要用到模块----from pymongo import MongoClient,ASCENDING, DESCENDING

    因为在python,mongodb的语法仍然实用,所以需要定义一个库,并且是全局性的,还有链接你计算机的一个全局变量。

    定义这些后,需要我们的新id来对数据的跟踪加定义:

    这个方法是通用的,所以只要记住其中的mongodb的语法就可以了!因为这里是有返回值的,所以这个是个方法体,这里不需要太过于纠结是怎么实现的,理解就好,中心还是在存数据的过程中

    这样我们的数据就直接存入到mongodb的数据库中了,这里解释一下为什么在大数据中这么喜欢mongodb,因为它小巧,速度佳!

    最后来一个实例源码:

    相关文章

      网友评论

        本文标题:用Python selenium实现自动化网页抓取器

        本文链接:https://www.haomeiwen.com/subject/tvnfqctx.html