xuyincheng 发表于 2022-2-11 22:00

Python request_html模块 遇到问题求解!

from requests_html import HTMLSession

headers = {
    "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
    }
session = HTMLSession()


def get_content(url):
    res = session.get(url, headers=headers)
    html = res.html
    html.encoding="gbk"
    h1 = html.find("h1", first=True)
    print(h1.html)
   

url = "https://www.tingshuge.com/book/37189/23504516.html"
get_content(url)


用find匹配元素,匹配结果是从那个元素开始以下所有内容。。。

是我的用法问题,还是库问题。。。求解!!

kof21411 发表于 2022-2-11 22:18

print(h1.text)

q124444 发表于 2022-2-11 22:28

从h1往下匹配所有,有什么问题吗?

狒狒大魔王 发表于 2022-2-11 22:33

可以了解下xpath或者jsoup 处理html更轻松

xuyincheng 发表于 2022-2-11 22:58

kof21411 发表于 2022-2-11 22:18
print(h1.text)

.text 是提取innerText的...

xuyincheng 发表于 2022-2-11 23:01

q124444 发表于 2022-2-11 22:28
从h1往下匹配所有,有什么问题吗?

我的意思是,它返回了第一个h1元素下面的所有HTML内容;并不是匹配所有h1

xuyincheng 发表于 2022-2-11 23:06

狒狒大魔王 发表于 2022-2-11 22:33
可以了解下xpath或者jsoup 处理html更轻松

这个是通过CSS选择器来定位的,还是挺方便的....

PeppaPig 发表于 2022-2-12 01:12

h1 = html.xpath("//*[@id='book']/div/h1/text()")

xuyincheng 发表于 2022-2-12 13:32

PeppaPig 发表于 2022-2-12 01:12
h1 = html.xpath("//*[@id='book']/div/h1/text()")

这样确实可以,但是如果只取到h1的话就成了这样...

PeppaPig 发表于 2022-2-12 22:51

xuyincheng 发表于 2022-2-12 13:32
这样确实可以,但是如果只取到h1的话就成了这样...

你看下,问题不大
页: [1] 2
查看完整版本: Python request_html模块 遇到问题求解!