常见Python爬虫工具总结
常见Python爬虫工具总结
前言
以前写爬虫都是用requests包,虽然很好用,不过还是要封装一些header啊什么的,也没有用过无头浏览器,今天偶然接触了一下。
原因是在处理一个错误的时候,用到了几个以前没有用过的工具;这几个工具也挺常见的,在这里一起总结一下。包括以下几个:
- selenium
- requests-html
selenium
简介
selenium是一个网页自动化测试的工具,既然是网页测试的,那么肯定支持各种浏览器了,常见的Firefox/Chrome/Safari都支持;当然,也需要你下载对应浏览器的驱动了。下面简单说一下他的使用方式。
安装
- 使用
pip install selenium安装selenium - 安装对应浏览器驱动,chrome的可以去这里下载
- 把驱动copy到
/usr/local/bin下(非必须,不拷贝的话在使用的时候需要制定驱动的路径)
简单使用
from selenium import webdriver
driver = webdriver.chrome.webdriver.WebDriver()
driver.get("https://www.lagou.com/jobs/3490584.html")
# 获取源码
a = driver.page_source.encode('utf-8')
# 查找资源/tag
driver.find_element_by_xpath(u"//img[@alt='强化学习 (Reinforcement Learning)']").click()
driver.find_element_by_link_text("About").click()
# 截图
driver.get_screenshot_as_file("./img/sreenshot1.png")
requests-html
简介
是不是看见requests很熟悉,没错,这个就是会拍照又会写代码的requests的作者写的又一个库;
这个库代码并不是很多,都是基于其他库封装的,lxml/requests啊这些;使用也很简单,遵循了他的宗旨:for humans
安装
pip install requests-html
使用
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://python.org/')
# 获取页面上的链接
r.html.links
r.html.absolute_links
# 用css选择器选择一个元素
about = r.html.find('#about', first=True)
print(about.text)
# xpath
r.html.xpath('a')
参考
- https://html.python-requests.org/#javascript-support
- https://blog.csdn.net/zhusongziye/article/details/79393004
- http://www.cnblogs.com/jinxiao-pu/p/6677782.html
- https://blog.csdn.net/JavaLixy/article/details/77874715
- https://blog.csdn.net/qq_30242609/article/details/79323963
常见Python爬虫工具总结的更多相关文章
- 常见Python爬虫框架你会几个?
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:三名狂客 正文 注意:如果你Python技术学的不够好,可以点击下方链接 ...
- python爬虫工具集合
python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...
- python爬虫工具
一直都听说python写爬虫工具非常方便,为了获取数据,我也要写点爬虫,但是python太灵活了,不知道python爬虫要哪些框架,要了解,比如beatiful soup,scrapy, 爬虫的额主要 ...
- Python 爬虫工具 —— fake_useragent
服务器为避免爬虫工具无休止的请求,以减轻负载,会对 user agent 进行校验,即判断某一 user-agent 是否不断地进行请求.可采用如下方式进行绕过服务器的校验. UserAgent_Li ...
- 一个python爬虫工具类
写了一个爬虫工具类. # -*- coding: utf-8 -*- # @Time : 2018/8/7 16:29 # @Author : cxa # @File : utils.py # @So ...
- 几个Python爬虫工具介绍
Request Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用 上面一句话 出自Requests官方文档的第一句,从而奠定了其逗逼的文档风格.类似的还有: 警告: ...
- Python爬虫和情感分析简介
摘要 这篇短文的目的是分享我这几天里从头开始学习Python爬虫技术的经验,并展示对爬取的文本进行情感分析(文本分类)的一些挖掘结果. 不同于其他专注爬虫技术的介绍,这里首先阐述爬取网络数据动机,接着 ...
- Python爬虫突破封禁的6种常见方法
转 Python爬虫突破封禁的6种常见方法 2016年08月17日 22:36:59 阅读数:37936 在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长.今天大众好像更倾向于用 ...
- python爬虫---详解爬虫分类,HTTP和HTTPS的区别,证书加密,反爬机制和反反爬策略,requests模块的使用,常见的问题
python爬虫---详解爬虫分类,HTTP和HTTPS的区别,证书加密,反爬机制和反反爬策略,requests模块的使用,常见的问题 一丶爬虫概述 通过编写程序'模拟浏览器'上网,然后通 ...
随机推荐
- iOS开发安全
这篇文章之前自己在公司的技术分享学院发表了.现在发到自己的博客上. 现在很多iOS的app没有做任何的安全防范措施.今天我们就聊聊iOS开发人员平时怎么做才更安全. 一.网络方面 用抓包工具可以抓取手 ...
- jvm本地实战
前言 由于上次线上full gc,让我这个没有机会实战接触jvm的人,尝到了一定的甜头,同时也觉得自己还有很多东西需要去实战并总结.这是一篇记录jvm配置参数,使用jvisualvm工具来让人对j ...
- Web大前端面试题-Day12
1.前端需要注意哪些SEO? 合理的title.description.keywords: 搜索对着三项的权重逐个减小, title值强调重点即可, 重要关键词出现不要超过2次, 而且要靠前, 不同页 ...
- loj#2038. 「SHOI2015」超能粒子炮・改
题目链接 loj#2038. 「SHOI2015」超能粒子炮・改 题解 卢卡斯定理 之后对于%p分类 剩下的是个子问题递归 n,k小于p的S可以预处理,C可以卢卡斯算 代码 #include<c ...
- ES-常见搜索方式
1.query string search 2.query DSL 3.query filter 4.full-text search 5.phrase search 6.highlight sear ...
- ES6语法篇(其一)
转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/es6-grammar-part-one/ 一.let命令 基本用法:ES ...
- java知识思维图解
- C# 8.0的新的using语法——Using declarations
我们在代码中经常使用using保障非托管资源的释放 static void Main(string[] args) { using (var options = Parse(args)) { if ( ...
- 写一个针对IQueryable<T>的扩展方法支持动态排序
所谓的动态排序是指支持任意字段.任意升序降序的排序.我们希望在客户端按如下格式写: localhost:8000/api/items?sort=titlelocalhost:8000/api/item ...
- Scala:Method 小技巧,忽略result type之后的等号
var x = 0 def IncreaseOne(): Int = { x += 1 x } def IncreaseOne() = { x += 1 x } def IncreaseOne = { ...