Requests-HTML 对 Requests 进行了封装,添加了解析 HTML 的接口,是一个 Python 的 HTML 解析库
由于该库是解析 html 对象,所以可以查看对应的 html 对象包含哪些方法与与属性。
html 对象的方法包括
find:提供一个 css 选择器,返回一个元素列表;xpath:提供一个 xpath 表达式,返回一个元素列表;search: 根据传入的模板参数,查找 Element 对象;search_all:同上,返回的全部数据;html 对象的属性包括
links:返回页面所有链接;absolute_links:返回页面所有链接的绝对地址;base_url:页面的基准 URL;html,raw_html,text:以 HTML 格式输入页面,输出未解析过的网页,提取页面所有文本;示例:爬取下面网站对于的网站名和网址

- from requests_html import HTMLSession
-
- session = HTMLSession()
-
- page_size = int(input("请输入总页码:"))
- for page in range(1, page_size + 1):
-
- world = session.get(f'http://www.world68.com/top.asp?t=5star&page={page}')
- world.encoding = 'gb2312'
- # world.html.encoding = "gb2312"
- # print(world.text)
- print("正在采集数据", world.url)
- title_a = world.html.find('dl>dt>a')
- for item in title_a:
- name = item.text
- url = item.attrs['href']
- with open('webs.txt', "a+", encoding="utf-8") as f:
- f.write(f"{name},{url}\n")
world.encoding,设置了网页解析编码;world.html.find('dl>dt>a') 通过 css 选择器,查找所有的网页标题元素;item.text 提取网页标题内容;item.attrs['href'] 获取元素属性,即网站域名 输出: