今天在做网页解析的时候遇到一个问题,使用了正确的xpath解析式但是得不到想要的网页内容,在确定了爬取的内容没有问题之后,发现是在etree.HTML(r.text)
进行网页转换时一些转义字符导致部分标签被注释掉从而无法通过xpath获取
解决办法:
- 用selector
# selector 方式
import requests
from lxml import etree
from bs4 import BeautifulSoup
url = 'https://gitee.com/al-one/hass-xiaomi-miot'
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36',
}
r = requests.get(url=url, headers=headers)
content = r.text
html = BeautifulSoup(content, 'html.parser')
res = html.select('#git-readme > div > div.file_content.markdown-body')[