打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
requests 和 BeautifulSoup一起用!爬遍全球网站!附源文代码!

请求返回 Response 对象,Response 对象是对 HTTP 协议中服务端返回给浏览器的响应数据的封装,响应的中的主要元素包括:状态码、原因短语、响应首部、响应 URL、响应 encoding、响应体等等。

构建查询参数

想为 URL 的查询字符串(query string)传递某种数据,比如: http://127.0.0.1:1024/developer/api/v1.0/all?key1=value1&key2=value2 ,Requests 允许你使用 params 关键字参数,以一个字符串字典来提供这些参数

还可以将 list 作为值传入:

响应内容

Requests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。请求发出后,Requests 会基于 HTTP 头部对响应的编码作出有根据的推测。小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!

超时

如果没有显式指定了 timeout 值,requests 是不会自动进行超时处理的。如果遇到服务器没有响应的情况时,整个应用程序一直处于阻塞状态而没法处理其他请求。

response = requests.get('http://127.0.0.1:1024/developer/api/v1.0/all', timeout=5) # 单位秒数

安装解析器

我用的是 html5lib,纯 Python 实现的。

Mac:

pip3 install html5lib

Windows:

pip install html5lib

简单使用

BeautifulSoup 将复杂 HTML 文档转换成一个复杂的树形结构,每个节点都是 Python 对象。

解析

查找

print(soup.find('p')) #

分享 Android 技术,也关注 Python 等热门技术。

find 默认也是返回第一个匹配的标签,没找到匹配的节点则返回 None。如果我想指定查找,比如这里的公众号,可以指定标签的如 class 属性值:

创建数据库

我直接用 NaviCat Premium 创建的,当然也可以用命令行。

创建表

创建表 article,用的 pymysql,表需要 id,article_title,article_author,article_content 字段,代码如下,只需要调一次就好了。

解析网站

首先需要 requests 请求网站,然后 BeautifulSoup 解析自己需要的节点。

插入数据库

这里做了一个筛选,默认这个网站的文章标题是唯一的,插入数据时,如果有了同样的标题就不插入。

import pymysql

定时设置

做了一个定时,过段时间就去爬一次。

完整代码

问题:这只是对一篇文章爬虫,如果是那种文章列表,点击是文章详情,这种如何爬虫解析?首先肯定要拿到列表,再循环一个个解析文章详情插入数据库?还没有想好该如何做更好,留给后面的课题吧。

谢谢阅读!

如有侵权请联系小编删除哦!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何利用Python爬取网络小说
Python入门(一):爬虫基本结构&简单实例
Python爬虫技巧:如何高效地爬取网络小说并保存到数据库!
傻瓜式文章爬虫-newspaper库简介
爬虫入门:如何用python爬取网易新闻?
python3 学习爬虫 第一步 网页基本信息简单获取
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服