Mr.404error 2023-10-10 08:59 采纳率: 50%
浏览 9
已结题

我Python爬虫写入文本出现了问题

import requests
import re
import chardet

headers = {
    'Cookie': 'sl-session=EXgtLA8EJGWc3sGYKIFQgg==; Hm_lvt_f3b53b404cc25325268ddf3b40edcdd6=1696729142,1696809589; Hm_lpvt_f3b53b404cc25325268ddf3b40edcdd6=1696810144',
    'Host': 'www.hagzx.cn',
    'Referer': 'https://www.hagzx.cn/index.html',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
}
url = 'https://www.hagzx.cn/channels/148.html'
name = requests.get(url=url, headers=headers, )
name.encoding = 'utf-8'
print(name.text)
z = re.findall('<a class="ell" title=(.*?)target="_blank" href="/contents(.*?)"', name.text)
print(z)
for namenew in z:
    urlname = namenew[0]
    urlnew = url + namenew[1]
    print(urlname,urlnew)
    with open("学校的公告.txt", "a") as f:
        f.writelines(str(namenew))

输出的数据:

[('"学校物流专业教师参加省教学能力比赛视频拍摄与制作服务外包询价公告" ', '/148/5787.html'), ('"高职校广播站地面更换项目成交公告" ', '/148/5786.html'), ('"技能等级认证(三级)成绩公示" ', '/148/5784.html'), ('"高职校广播站地面更换项目" ', '/148/5783.html'), ('"淮安市高级职业技术学校2023~2024学年第一学期机电系实训室工量具及材料购置采购项目成交公告   " ', '/148/5729.html'), ('"淮安市高级职业技术学校《智慧仓配运营》教学资源库建设采购项目成交公告" ', '/148/5728.html'), ('"学校2023~2024学年第一学期机电系实训室工量具及材料购置  采购项目询价公告" ', '/148/5723.html'), ('"灭火器等消防器材更换中标公告" ', '/148/5722.html'), ('"2023年新生读本及班主任台账印刷中标公告" ', '/148/5721.html'), ('"《智慧仓配运营》教学资源库建设采购项目磋商公告" ', '/148/5720.html'), ('"2023新生教育读本及班主任管理台账等印刷招标" ', '/148/5718.html'), ('"灭火器等消防器材更换招标" ', '/148/5715.html'), ('"国赛机器人技术应用项目赛前第二阶段训练耗材采购成交结果公告" ', '/148/5710.html'), ('"2022-2023第二学期模具和机电专业考试训练耗材采购成交结果公告" ', '/148/5708.html'), ('"国赛机器人技术应用项目赛前第二阶段训练耗材采购询价公告" ', '/148/5704.html')]
"学校物流专业教师参加省教学能力比赛视频拍摄与制作服务外包询价公告"  https://www.hagzx.cn/channels/148.html/148/5787.html
"高职校广播站地面更换项目成交公告"  https://www.hagzx.cn/channels/148.html/148/5786.html
"技能等级认证(三级)成绩公示"  https://www.hagzx.cn/channels/148.html/148/5784.html
"高职校广播站地面更换项目"  https://www.hagzx.cn/channels/148.html/148/5783.html
"淮安市高级职业技术学校2023~2024学年第一学期机电系实训室工量具及材料购置采购项目成交公告   "  https://www.hagzx.cn/channels/148.html/148/5729.html
"淮安市高级职业技术学校《智慧仓配运营》教学资源库建设采购项目成交公告"  https://www.hagzx.cn/channels/148.html/148/5728.html
"学校2023~2024学年第一学期机电系实训室工量具及材料购置  采购项目询价公告"  https://www.hagzx.cn/channels/148.html/148/5723.html
"灭火器等消防器材更换中标公告"  https://www.hagzx.cn/channels/148.html/148/5722.html
"2023年新生读本及班主任台账印刷中标公告"  https://www.hagzx.cn/channels/148.html/148/5721.html
"《智慧仓配运营》教学资源库建设采购项目磋商公告"  https://www.hagzx.cn/channels/148.html/148/5720.html
"2023新生教育读本及班主任管理台账等印刷招标"  https://www.hagzx.cn/channels/148.html/148/5718.html
"灭火器等消防器材更换招标"  https://www.hagzx.cn/channels/148.html/148/5715.html
"国赛机器人技术应用项目赛前第二阶段训练耗材采购成交结果公告"  https://www.hagzx.cn/channels/148.html/148/5710.html
"2022-2023第二学期模具和机电专业考试训练耗材采购成交结果公告"  https://www.hagzx.cn/channels/148.html/148/5708.html
"国赛机器人技术应用项目赛前第二阶段训练耗材采购询价公告"  https://www.hagzx.cn/channels/148.html/148/5704.html

写入的文本:

('"国赛机器人技术应用项目赛前第二阶段训练耗材采购询价公告" ', '/148/5704.html')('"学校物流专业教师参加省教学能力比赛视频拍摄与制作服务外包询价公告" ', '/148/5787.html')('"高职校广播站地面更换项目成交公告" ', '/148/5786.html')('"技能等级认证(三级)成绩公示" ', '/148/5784.html')('"高职校广播站地面更换项目" ', '/148/5783.html')('"淮安市高级职业技术学校2023~2024学年第一学期机电系实训室工量具及材料购置采购项目成交公告   " ', '/148/5729.html')('"淮安市高级职业技术学校《智慧仓配运营》教学资源库建设采购项目成交公告" ', '/148/5728.html')('"学校2023~2024学年第一学期机电系实训室工量具及材料购置  采购项目询价公告" ', '/148/5723.html')('"灭火器等消防器材更换中标公告" ', '/148/5722.html')('"2023年新生读本及班主任台账印刷中标公告" ', '/148/5721.html')('"《智慧仓配运营》教学资源库建设采购项目磋商公告" ', '/148/5720.html')('"2023新生教育读本及班主任管理台账等印刷招标" ', '/148/5718.html')('"灭火器等消防器材更换招标" ', '/148/5715.html')('"国赛机器人技术应用项目赛前第二阶段训练耗材采购成交结果公告" ', '/148/5710.html')('"2022-2023第二学期模具和机电专业考试训练耗材采购成交结果公告" ', '/148/5708.html')('"国赛机器人技术应用项目赛前第二阶段训练耗材采购询价公告" ', '/148/5704.html')

我写的这个爬虫,输出是对的,但是在写入文件时和‘urlnew = url + namenew[1]’不一样

  • 写回答

3条回答 默认 最新

  • Mr.404error 2023-10-11 09:16
    关注
    import requests
    import re
    import chardet
    
    headers = {
        'Cookie': 'sl-session=EXgtLA8EJGWc3sGYKIFQgg==; Hm_lvt_f3b53b404cc25325268ddf3b40edcdd6=1696729142,1696809589; Hm_lpvt_f3b53b404cc25325268ddf3b40edcdd6=1696810144',
        'Host': 'www.hagzx.cn',
        'Referer': 'https://www.hagzx.cn/index.html',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    }
    url = 'https://www.hagzx.cn/channels/148.html'
    name = requests.get(url=url, headers=headers, )
    name.encoding = 'utf-8'
    print(name.text)
    z = re.findall('<a class="ell" title=(.*?)target="_blank" href="/contents(.*?)"', name.text)
    for namenew in z:
        urlname = namenew[0]
        urlnew = 'https://www.hagzx.cn/contents' + namenew[1]
        print(urlname, urlnew)
        with open("学校的公告.txt", "a") as f:
            f.writelines(str(namenew))
    
    
    

    修改后,成功保存

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月8日
  • 已采纳回答 1月31日
  • 创建了问题 10月10日