[Python] 纯文本查看 复制代码 import re
import requests
from lxml import etree
url = "https://www.qidian.com/all"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
}
sep1 = requests.get(url=url, headers=headers).text
tree = etree.HTML(sep1)
# detail_url = "https:" + tree.xpath('//div[@class="all-book-list"]//a[1]/@href')[0]
# sep2 = requests.get(url=detail_url, headers=headers).text
print("----------获取分页地址第一种方法:使用正则-----------")
url2 = re.findall(r'<a data-page="\d+" href="(.*?)"', sep1) # 页码(楼主原来的问题就是在这里出错的)
"""
这里补充一下你原来的问题出在哪里:
1.正则匹配的是括号内的内容
2.楼主不应该在sep2(详情页)内匹配页码,而应该在sep1(首页url)内匹配页码
3.楼主正则表达式有误
"""
for i in url2:
pages = "https:" + i
print(pages)
print("----------获取分页地址第二种方法:使用xpath-----------")
url2 = tree.xpath("//div//ul/li[@class='lbf-pagination-item'][position()>1][position()<6]/a/@href") # 页码
for i in url2:
pages = "https:" + i
print(pages)
print("以上两种方法,更推荐使用正则,相对简单") |