lxinghua

博客园 首页 新随笔 联系 订阅 管理

requests_html模块

requests_html 模块介绍

1. requests_html是比较新的爬虫库,作者和requests是同一个作者;

2. 我们可以在安装的时候看到他安装了lxml、requests、bs4 ......等我们常用的解析和爬取的库都封装在他里面;

3. 用法和requests.session实例化的对象用法一模一样,也会自动保存返回信息;

4. 相比requests, 他多了对于response.html这个属性;

注意点:默认是带了有UA的,无序额外添加。

requests_html 与 requests的区别

from request_html import HTMLSession  
import requests

session = HTMLSession()   # 实例化
url = "https://baidu.com"   # 用百度来做实例

response1 = session.get(url)
# requests_html 查看请求头, 获取的文本长度、编码
print(response1.request.headers, len(response1.text), response2.encoding)

# requests_heml查看请求头, 获取的文本长度, 编码
response2 = requests.get(url)
print(response2.request.headers, len(response2.text), response.encoding)

使用requests_html解析摄图网

from requests_html import HTMLSession

session = HTMLSession()

response = session.get(url="https://669pic.com/tupian/143555.heml")

# print(response.html.links)
# print(response.html.absolute_links)  # 获取页面中所有的链接  自动将url转换为绝对路径形式
# print(response.html.xpath("//div[@class='list']/a/@title"):

for i in response.html.xpath('//dic[@class="list"]/a/@title'):
    print(i)

json模块

结构化数据: json、xml等;处理方式:直接转化为python类型

非结构化数据:html;处理方式:正则表达式、xpath、选择器

JSON: 以一种特定的字符串形式来表示JavaScript对象。 如果将具有这样一种形式的字符串赋给任意一个JavaSript变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的;

XML: 标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。 它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据;

HTML:是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、连接等。

 json使用

dump:可以将dict类型转换成str,并写入到json文件中;

dumps:可以格式化所有的基本数据类型为字符串;

loads:将str类型转换成dict;

load:从json文件中读取数据;

不管是dump还是load,带s的都是和字符串相关的,不带s的都是坏人文件相关的。

1. json.dumps 将Python对象编码成JSON字符串,严格按照JSON格式进行转换 pythonDict-->jsonStr

2. json.loads 将已编码的JSON字符串解码为Python对象jsonStr-->pythonDict

3. json.dump和json.load 需要传入文件描述符,加上文件操作。

posted on 2023-03-15 19:52  興華  阅读(27)  评论(0编辑  收藏  举报