朋友们,你们在用什么爬行动物获取数据时总是有问题吗动态页面,必须分析get或post请求包信息、手动构造请求、配置大量参数信息等才能获得动态加载的数据?在这个过程中,代码的数量变得巨大而臃肿,朋友们也很烦恼。
达康部长心怀怨恨
如何解除忧虑?
只有“ISEC”!
邱老师
给你一个动态页面来处理尖锐的工具:
硒模块化
帮你减轻烦恼!
很高兴坐飞机
Selenium最初是一个测试web应用程序的工具,主要测试应用程序和浏览器之间的兼容性。当我们用Selenium编写爬虫项目时,我们可以通过代码控制浏览器,模拟真实用户的操作,将复杂的请求完全移交给浏览器。代码本身只需要注意页面解析和数据提取。
安寨教室
系统:Windows764位
模块化:蟒蛇2。7+Scrapy+Selenium
石斑鱼类:皮查姆
小心:当使用pip安装scrapy模块时,当PYPI服务器或网络不可用时,可能会导致AndyLau超时异常。对于此类问题,可以尝试使用miniconda或Anaconda来构建python综合开发环境。除了安装相应的Python模块,Selenium还需要安装铬浏览器(本文中的操作是在Chrome浏览器上进行的),您需要下载相应的chromedriverExe并将其复制到系统磁盘中的system32目录。
二操作步骤本文以爬行智湖网站用户为例,详细介绍Scrapy+Selenium的用法。Selenium的主要功能是打开浏览器加载网页并获取网页源代码数据。Scrapy使用管道技术存储数据。
一首先,创建一个新的scratch项目,并在项目目录user下的spiders文件夹中生成一个Zhihu。Py脚本文件。
在zhihuuserspider爬虫类中进行一些简单的初始化设置,使用parse()函数中的selenium模块启动浏览器并加载Zhihu登录界面URL。
图1程序源代码
图2运行效果图
二成功驱动浏览器并加载页面后,需要在网页中找到帐户和密码输入框、登录按钮的元素标签,并获取标签的相应信息手柄,因此,操作手柄实现了输入和点击功能。
图3页面源代码定位输入框和按钮
Webdriver提供了一系列元素定位方法。最常用的定位方法是ID、name、XPath等。其中,XPath更灵活、更强大,甚至支持布尔逻辑活动建议您使用XPath来定位元素,
图4定位输入框和按钮
(你只需要写三行代码就可以实现自动输入并点击…)
图5已成功输入帐户和密码
图6登录成功
三在使用Selenium模块成功实现登录功能后,让我们看看是否使用通用爬虫思想来实现登录功能。通过分析登录过程中浏览器的请求信息,我们找到了实现登录操作的请求后信息:
图7登录请求包
找到一个“xsrf”参数。通过查看和分析登录界面的源代码,可以找到此参数的位置:
图8_Xsrf参数位置
图9常见爬虫登录代码
与Selenium模块相比,登录功能只需两三行代码即可完成,而普通爬虫需要的代码量几乎是Selenium模块的两倍。
四成功登录后,您可以开始爬行以获取志虎上的用户信息。这里采用了一种简单的爬行策略:选择一个拥有大量关注者的用户,然后每个关注者都有自己的关注者列表,所以一路向下爬。。。这里是“Python爱好者”公众号是测试的起点(URL:https://www.zhihu.com/people/python-kai-fa-zhe)
图10跳转到特定页面
图11页面数据提取和跳转
五爬虫的页面跳转和数据提取基本完成。scratch框架的管道技术可以用来保存数据,这里将不详细讨论。运行一段时间后,查看数据库数据:
图12爬行数据
Selenium爬虫的优点是只需要关注页面解析,可以忽略如何动态请求和构造参数;缺点是它需要一个界面程序来运行浏览器,这对Windows系统用户来说不是问题。Linux用户,尤其是那些没有接口程序的用户,将更加麻烦。他们需要安装一个虚拟桌面程序,将浏览器重定向到虚拟桌面进行操作。
欢迎关注公众号ISEC安全e站
这么简单
最新评论