requests-html

Python爬虫学习

杀马特。学长 韩版系。学妹 提交于 2021-01-03 11:27:42
原博地址:http://blog.sciencenet.cn/blog-377709-1102168.html 超级好的博主,很详细,适合零基础学习。 Anaconda 下anaconda prompt:pip install pipenv 运行完后运行: pipenv install 安装软件包requests_html:pip install requests_html 读入网页加以解析抓取,需要用到的软件包是 requests_html 。 from requests_html import HTMLSession session = HTMLSession() #建立一个会话,让python作为一个客户端,和远端服务器交谈 url = 'https://www.jianshu.com/p/85f4624485b9' #输入爬取网址 r = session.get(url) #利用 session 的 get 功能,把这个链接对应的网页整个儿取回来 print(r.html.text)#我们告诉Python,请把服务器传回来的内容当作HTML文件类型处理。我不想要看HTML里面那些乱七八糟的格式描述符,只看文字部分。 获取网页中的所有链接 把返回的内容作为HTML文件类型,我们查看 links 属性: r.html.links 注释:看似不完整的链接,是相对链接,它是某个链接

爬虫小技巧

余生颓废 提交于 2021-01-02 11:08:31
###爬虫小技巧 首先问一下大家都使用过哪些python爬虫模块呢?相信大多数人会回复requests或者scrapy吧,嗯我是说大多人。但是针对简单的爬虫我们还是习惯性的使用requests吧,或者升级版的requests_html,此时再使用scrapy,就有种杀鸡焉用宰牛刀的意味了。 现在我们有个简单的要求,去获取该网页 http://www.air-level.com/air/beijing/的一个表格数据,然后保存起来。 相信此时很多人应该拿起requests敲起来了吧。这里由于代码比较简单就说下思路。 首先,我们要成功访问该网页,然后解析网页表格里面的内容,然后存储数据,这里简单我们就存csv好了。好了思路好了我们就可以写自己代码了,如果对xpath解析数据不很熟悉,应该会稍微耗点时,人生苦短,对于这么简单的任务怎么能浪费过多的时间呢? 经过调查我找到了应对这种静态单页面的更好的方法。。。 ###pandas模块 ####简介 提到pandas更多联想到也许是它的数据分析功能,但是在查它的api的时候我发现了这个方法 read_html : 下面是这个函数及其参数 pandas.read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None,

requests_html Chromium下载解决办法

旧城冷巷雨未停 提交于 2020-11-24 09:30:33
requests_html内建提供了一个比较好用的render()方法, 但实现这个方法需要依赖Chromium,直接写好代码然后运行,如果没有科*学上网,在大陆几乎是不可能下载成功的。 科*学上网是最好的解决办法,本人比较笨不会设置代理,也找不到服务器,于是采用了手动下载的方式。 首先,浏览器需要安装好代理插件,开启代理。 去这个网站:https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html,根据自己的操作系统选择对应的版本 把压缩包解压到这个路径下即可:C:\Users\Administrator\AppData\Local\pyppeteer\pyppeteer\local-chromium\575458\chrome-win32 路径中,以版本号命名的文件夹,目前是将这个"575458"数字写死的! 如果下载了最新版本的Chromium,然后把这个版本号也跟着换了,那就会报错! 看下图黄色圈圈内的数字,很明显是"写死了"文件夹的名称。估计K神创建这个库的时候,575458还是最新版的。 注意:这个在Linux server上行不通,这里的Chromium是图形界面软件,服务器版的linux用不来。 来源: oschina 链接: https://my.oschina.net

Python爬虫入门教程: All IT eBooks多线程爬取

此生再无相见时 提交于 2020-11-21 03:15:20
All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的 收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来。 然后放着,是的,就这么放着.......然后慢慢的遗忘掉..... All IT eBooks多线程爬取-爬虫分析 打开网址 http://www.allitebooks.com/ 发现特别清晰的小页面,一看就好爬 在点击一本图书进入,发现下载的小链接也很明显的展示在了我们面前,小激动一把,这么清晰无广告的网站不多见了。 All IT eBooks多线程爬取-撸代码 这次我采用了一个新的模块 requests-html 这个模块的作者之前开发了一款 requests ,你应该非常熟悉了,线程控制采用的 queue 安装 requests-html 模块 pip install requests-html 关于这个模块的使用,你只需要使用搜索引擎搜索一下这个模块名称,那文章也是很多滴,作为能学到这篇博客的你来说,是很简单的拉~ 我们编写一下核心的内容 from requests_html import HTMLSession from queue import Queue import requests import random import threading CARWL_EXIT =

解决request-html chromium下载失败原因

送分小仙女□ 提交于 2020-04-14 16:18:37
【推荐阅读】微服务还能火多久?>>> 我们在第一次使用 requests-html 中 render 函数的时候,当你第一次调用render()方法时,代码将会自动下载Chromium,并保存在你的根目录下(如:~/.pyppeteer/)。它只会下载这一次。唯一缺点就是 chromium 下载实在太慢了,下载过程容易出现超时现象导致失败。 第一种解决方案 修改 Pyppeteer 中的下载路径,因为默认的下载路径不能访问,原因你懂的。 这里介绍的是 PyCharm 中的使用方法: 找到 pyppeteer 如果没有找到请安装 pip install pyppeteer 找到 downloadURLs 修改成对应系统和对应的版本(我这里是mac系统,选择的是最新版本。淘宝镜像chromium: https://npm.taobao.org/mirrors/chromium-browser-snapshots) 然后再次运行你的程序就可以了。 测试成功与否 from requests_html import HTMLSession session = HTMLSession() r = session.get('https://www.baidu.com/text/') r.html.render() print(r.html.html) 第二种方案 直接在shell中输入

【项目实战】我是如何从分析到手写一个微信机器人的 - 登录篇

余生颓废 提交于 2019-11-30 07:05:44
相信各位都有在使用微信,并且也知晓web版微信的存在。今天我们就来讲一下,如何通过模拟web版微信接口来制作一个全自动的微信机器人。本篇是该实战项目的第一篇,主讲如何实现一个登陆过程。整个的分析过程实际上是对 https://res.wx.qq.com/a/wx_fed/webwx/res/static/js/index_4f3487a.js 文件的解读🐶。 <!--more--> 0x00逻辑图集 在对一个站点进行逻辑复现前,制作一张逻辑脑图会对整个过程有更好的理解。帮助你理清思路。 图集标注 为了让图像更为整洁,我们将带括号的内容,例如 【verb】 作为一个变量来表示。 并且为了让逻辑路线更为清晰,我们声明如下几类线以区分下一步的操作。 登录逻辑 接下来则是一张通过mindnode画成的网页微信登录过程。 > 其中的session指代该次会话,可以自动处理整个过程中出现的set-cookie事件。 0x01过程分解 而后我们将web微信的登录过程划分成以下几个步骤。 1.打开web微信首页 2.扫描二维码 3.模拟扫描及确认过程 4.完成登录 5.登录后的信息获取 0x02过程详解 1.打开web微信首页 首先我们需要获取到二维码以用于扫描。通过观察web请求过程我们发现, https://login.weixin.qq.com/qrcode/【xxx】 为其实际地址。而

【项目实战】我是如何从分析到手写一个微信机器人的 - 登录篇

烂漫一生 提交于 2019-11-30 03:47:06
相信各位都有在使用微信,并且也知晓web版微信的存在。今天我们就来讲一下,如何通过模拟web版微信接口来制作一个全自动的微信机器人。本篇是该实战项目的第一篇,主讲如何实现一个登陆过程。整个的分析过程实际上是对 https://res.wx.qq.com/a/wx_fed/webwx/res/static/js/index_4f3487a.js 文件的解读🐶。 <!--more--> 0x00逻辑图集 在对一个站点进行逻辑复现前,制作一张逻辑脑图会对整个过程有更好的理解。帮助你理清思路。 图集标注 为了让图像更为整洁,我们将带括号的内容,例如 【verb】 作为一个变量来表示。 并且为了让逻辑路线更为清晰,我们声明如下几类线以区分下一步的操作。 登录逻辑 接下来则是一张通过mindnode画成的网页微信登录过程。 > 其中的session指代该次会话,可以自动处理整个过程中出现的set-cookie事件。 0x01过程分解 而后我们将web微信的登录过程划分成以下几个步骤。 1.打开web微信首页 2.扫描二维码 3.模拟扫描及确认过程 4.完成登录 5.登录后的信息获取 0x02过程详解 1.打开web微信首页 首先我们需要获取到二维码以用于扫描。通过观察web请求过程我们发现, https://login.weixin.qq.com/qrcode/【xxx】 为其实际地址。而