import requests
from lxml import etree
import time
#为什么下面只能得到一个[]
for i in range(5,0,-1):#循环一次就是每一页的公告的标题。时间。点击量
if (i == 0):#第一页和其他页的url规律不同所以条件语句
url = 'http://hhxy.cqjtu.edu.cn/dwgk_ywgk.htm'
else:
url = 'http://hhxy.cqjtu.edu.cn/dwgk_ywgk' + str(i) + '.htm'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
}
response = requests.get(url, headers=headers,timeout=(2, 10)).text
print(response)
html = etree.HTML(response)
print(html)
divs = html.xpath('/html/body/div[2]/table/tbody/tr/td[1]/div/div[4]/div[3]/table/tbody/tr')
print(divs)
for div in divs:
title = div.xpath("./td[2]/a/text()")[0]
TM = div.xpath("./td[3]/span/text()")[0]
href = div.xpath("./td[3]/span/a@href")[0]
href2 = "http://hhxy.cqjtu.edu.cn/" + href
# 导入这个href2,是为了去获取点击量,但是连之前的[]都没解决,哎。。。
print(title, TM, href2)
time.sleep(1)
with open("河海学院.txt", "a", encoding="utf-8") as f:
f.write("{},{},{}.format(title,TM,href2)")
f.write("\n")
入门级别python问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
8条回答 默认 最新
- Ko-walski 2022-12-31 21:52关注
1首先你的代码压根就没返回相应内容 头信息不全无法获取
2.其次你的定位不到是最后的这个tbody(也就是最后的那个table后面那个)浏览器会对html文本进行一定的规范化,所以会自动在路径中加入tbody,导致读取失败,在此处直接在路径中去除tbody即可 所以你手动加了就找不到了
最终你因为上面两个原因返回是空列表【】
所以修改后的基础代码如下 仅仅获取第一页的import requests from lxml import html url = 'http://hhxy.cqjtu.edu.cn/dwgk_ywgk.htm' HEADER = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36', # "Cookie": "JSESSIONID=BC06B8370F297B9ADFE2C82EF2F6E331", "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" } webpage = requests.get(url, headers=HEADER) tree = html.fromstring(webpage.content) text = tree.xpath('//*/div[@class="twidth"]/table/tbody/tr/td[1]/div/div[4]/div[@class="mm"]/table/tr/td/a/text()') for t in text: print(t)
定位半天不容易 给个采纳 哈哈
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 能给我一些人生建议吗
- ¥15 mac电脑,安装charles后无法正常抓包
- ¥18 visio打开文件一直显示文件未找到
- ¥15 请教一下,openwrt如何让同一usb储存设备拔插后设备符号不变?
- ¥30 使用quartz框架进行分布式任务定时调度,启动了两个实例,但是只有一个实例参与调度,另外一个实例没有参与调度,不知道是为什么?请各位帮助看一下原因!!
- ¥50 怎么获取Ace Editor中的python代码后怎么调用Skulpt执行代码
- ¥30 fpga基于dds生成幅值相位频率和波形可调的容易信号发生器。
- ¥15 R语言shiny包和ncdf4包报错
- ¥15 origin绘制有显著差异的柱状图和聚类热图
- ¥20 simulink实现滑模控制和pid控制对比,提现前者优势