python爬虫常见报错_对Python爬虫常见工具总结,欢迎补充

前言

以前写爬虫都是用requests包,虽然很好用,不过还是要封装一些header啊什么的,也没有用过无头浏览器,今天偶然接触了一下。

原因是在处理一个错误的时候,用到了几个以前没有用过的工具;这几个工具也挺常见的,在这里一起总结一下。包括以下几个:

selenium

requests-html

selenium

简介

selenium是一个网页自动化测试的工具,既然是网页测试的,那么肯定支持各种浏览器了,常见的Firefox/Chrome/Safari都支持;当然,也需要你下载对应浏览器的驱动了。下面简单说一下他的使用方式。

安装

使用pip install selenium安装selenium

安装对应浏览器驱动,chrome的可以去这里下载

把驱动copy到/usr/local/bin下(非必须,不拷贝的话在使用的时候需要制定驱动的路径)

简单使用

'''

遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

'''

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')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI造福设计师:搭配色板这种苦差事交给GAN就好啦(教程)

本文来自AI新媒体量子位(QbitAI)设计师要开工,总是离不开配色方案,也就是色板。 不过,做色板可不是个简单的活,色板生成器Colormind的作者Jack Qiao(名字来自Product Hunt,我们下面叫…

mapreduce yarn内存参数

1、yarn-site.xml 设置 1.1 RM设置 RM的内存资源配置,主要是通过下面的两个参数进行的(这两个值是Yarn平台特性,应在yarn-sit.xml中配置好): yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocati…

python有哪些常用的package_个人Python常用Package及其安装

为了避免每次重装系统时又要东翻西找,现在此记录一下目前常用的Python包安装过程。 1) Python: 2.7.11, 下载地址:www.python.org。由于个人喜欢使用PyQt4(其实是不会PyQt5……),因此选择安装Python2.7。 安装好Python…

html网页设计大赛_HTML5网页设计大赛 || 决赛名单公布

历经数日的HTML5网页设计大赛初赛已经落下的帷幕激动人心的决赛即将开始你们准备好了吗?①决赛名单在经过评委老师多轮评选后,有以下队伍/(个人)脱颖而出进入决赛:1.施佳镛_故宫旅游网2.王永校_神秘莫测的宇宙3.黄炜岳_广州旅游网站4.吴贵滨_NameLess5.陈…

2018.03.12、Android知识点-Java篇

1、阐述下对象的自动装箱和拆箱 2 基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。自动装箱是java编译器在java原生类型和对应的对象包装类型上做的自动转换。 自动装箱:Integer i 1;其实编译器为你自动实现了&#x…

Hive的数据模型—桶表

概述 桶表是对数据进行哈希取值,然后放到不同文件中存储。 数据加载到桶表时,会对字段取hash值,然后与桶的数量取模。把数据放到对应的文件中。 物理上,每个桶就是表(或分区)目录里的一个文件,一个作业产…

mysql+使用swap_MySQL避免使用SWAP

当物理内存的数量不能容纳数据的时候,os会把虚拟内存中的数据写到磁盘上,此时的交换对于运行在操作系统中的进程是透明的。交换对与MySQL性能有很大的影响,对于Innodb存储引擎它对内存中的数据锁住全局互斥量,如果此时导致了磁盘的…

delphi bmp绘制矢量文件效率慢_聊一聊矢量瓦片的常识

一、矢量瓦片的基本原理和相关格式现阶段,电子地图瓦片主要使用两种方式,一种是传统的栅格瓦片,另外一种是新出的矢量瓦片(Vector Tiles),前者是采用四叉树金字塔模型的分级方式,将地图切割成无数大小相等的矩形栅格图…

python生成器与迭代器。

生成器 在python 中一边循环一边计算的机制,叫做生成器(generator)。 通过列表生成式,我们可以直接创建一个列表。但是,收到内存的限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用…

centos mysql 设置_CentOS下MySQL安装后配置和设置-阿里云开发者社区

CentOS下MySQL安装后配置和设置:1:安装完成路径:1、数据库目录/var/lib/mysql/2、配置文件/usr/share/mysql(mysql.server命令及配置文件)3、启动脚本/etc/rc.d/init.d/(启动脚本文件mysql的目录)4、相关命令/usr/bin(mysqladmin mysqldump等命令)注:1~3…

python怎样将list转化成字典_在python 中如何将 list 转化成 dictionary

原标题:在python 中如何将 list 转化成 dictionary 问题1:如何将一个list转化成一个dictionary? 问题描述:比如在python中我有一个如下的list,其中奇数位置对应字典的key,偶数位置为相应的value解决方案: 1…

vscode gcc debug dbg gdb c cpp c++ cuckoo monitor

为什么80%的码农都做不了架构师?>>> 装cygwin 或者mingGW,装gcc工具链,并将cygwin的bin目录加入环境变量PATH中。 ctrlshiftb {// See https://go.microsoft.com/fwlink/?LinkId733558// for the documentation about the tasks…

hive索引

创建 hive (zmgdb)> create index index_t1 on table v_t1(name) > as > org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler > with > deferred rebuild in table save_index_t1_table; OK Time …

python爬取知网论文关键词_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中...

由于实验室需要一些语料做研究,语料要求是知网上的论文摘要,但是目前最新版的知网爬起来有些麻烦,所以我利用的是知网的另外一个搜索接口 搜索出来的结果和知网上的结果几乎一样 在这个基础上,我简单看了些网页的结构,…

网页中查看pdf文档

2019独角兽企业重金招聘Python工程师标准>>> 介绍&#xff1a; PDFObject 是一个 JavaScript 库&#xff0c;用来在HTML中动态嵌入 PDF 文档。 实现代码&#xff1a; <script type"text/javascript" src"pdfobject.js"></script>…

导入导出数据

导入数据 从文件中装载数据 hive>LOAD DATA [LOCAL] INPATH ... [OVERWRITE] INTO TABLE t2 [PARTITION (provincebeijing)]; LOCAL&#xff1a;linux本地的文件。无LOCAL&#xff1a;是hdfs的文件 注意&#xff1a; 从本地文件系统中将数据导入到Hive表的过程中&#xf…

python opencv 读取视频流不解码_python + opencv: 解决不能读取视频的问题

博主一开始使用python2.7和Opencv2.4.10来获取摄像头图像&#xff0c;程序如下&#xff1a; cap cv2.VideoCapture(0) ret, frame cap.read()使用这个程序能够打开摄像头并获取图像&#xff0c;一切正常。 接着想使用OpenCv播放视频&#xff0c;按照官方教程只要将VideoCaptu…

jmeter提取mysql返回值_jmeter连接数据库和提取数据库返回值

一、在MySQL命令行中&#xff0c;验证MySQL是否能正常登陆。若不能登陆&#xff0c;则重置MySQL的密码。二、下载mysql-connector-java-5.1.45-bin.jar&#xff0c;将其放入Jmeter安装目录的lib目录下。完成MySQL数据库的驱动。三、右键“线程组”->“配置元件”->“JDBC…

[转] Lodash

与underscore 类似 &#xff0c; 是1个js库&#xff0c;内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数。 模块组成 Lodash 提供的辅助函数主要分为以下几类&#xff0c;函数列表和用法实例请查看 Lodash 的官方文档&#xff1a; Array&#xff0c;适用于数组类型…

读模式与写模式

RDBMS是写模式 Hive是读模式 我们传统的关系型数据库RDBMS是写模式。在RDBMS里&#xff0c;我们对表进行数据操作时候&#xff0c;RDBMS会用数据库的第一第二第三范式去检查数据的规范性&#xff0c;如果不符合规范&#xff0c;数据库就拒绝数据的加载和操作。这个验证过程消耗…