beyond1994 发表于 2022-7-5 23:28

Python爬取每日早报-新手

大佬勿喷说明
之前论坛大佬写的爬取每日早报失效了,因为页面更新需要重新写XPATH
参考地址
[*]https://www.52pojie.cn/thread-1550840-1-1.html

代码
import requests
from lxml import etree
wps =[]
url="https://www.163.com/dy/media/T1603594732083.html"
heders = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
rsp = requests.get(url,headers = heders)
hot = rsp.content.decode('utf-8')
html=etree.HTML(hot)
today_url=html.xpath("//ul[@class='list_box cur']/li/a/@href")
rsp = requests.get(today_url,headers = heders)
hot = rsp.content.decode('utf8')
html=etree.HTML(hot)
news_list = html.xpath('//div[@class="post_body"]/p//text()')
news_list = news_list
for news in news_list:
    print(news)

surepj 发表于 2022-7-6 09:59

本帖最后由 surepj 于 2022-7-6 10:00 编辑

学习了。我抄了一遍,顺手调整了点
import requests
from lxml import etree

url = "https://www.163.com/dy/media/T1603594732083.html"#新闻列表页面地址
heders = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
resp_1 = requests.get(url, headers=heders).content.decode('utf-8')#第1次请求:新闻列表页面
html_1 = etree.HTML(resp_1)
today_url = html_1.xpath("//ul[@class='list_box cur']/li/a/@href")#获取新闻列表页面,第一条新闻链接地址
resp_2 = requests.get(today_url, headers=heders).content.decode('utf-8')#第2次请求:第一条新闻页面
html_2 = etree.HTML(resp_2)
news_list = html_2.xpath('//div[@class="post_body"]/p//text()')#获取新闻详情,去除无关内容
for news in news_list:# 循环遍历,新闻,打印
    print(news)


效果如下:
2022年7月6日 星期三 农历六月初八
1、卫健委:中国人均预期寿命提至77.93岁,健康指标居于中高收入国家前列。
2、在轨满月!神十四飞行乘组身心状态良好,各项任务顺利推进。
3、发改委:正研究启动投放储备猪肉,防范生猪价格过快上涨。
4、西安6日起实施七天临时性管控措施,公共场所暂停营业、暂停堂食一周。
5、上海将对黄浦等9区全域、浦东新区等3区局地开展为期3天的全员核酸筛查。
6、中山:房价每次降幅不得超5%,调整间隔不少于3个月 。
7、宁夏:企业和机关事业单位退休人员基本养老金每人每月增加60元。
8、湖北省对电影院每个座位每月补助25元,共补助3个月。
9、微信内测新功能:一个手机号可注册两个微信账号。
10、云南一中学以是否购5800元平板定分班,当地:属实,已责令清退违规收费244万。
11、土耳其发现大量稀土资源,储量足以满足全球1000年需求。
12、法国将斥资六千万欧元粉刷埃菲尔铁塔,迎接2024奥运会。
13、芬兰、瑞典正式签署加入北约议定书。
14、日本批准对俄追加制裁措施,包括禁止进口俄产黄金。
15、外媒:普京下令俄军继续在乌展开攻势,重点转向顿涅茨克。​

wangmi5200 发表于 2022-7-16 14:24

import requests
from lxml import etree
import time
wps = []
url = "https://www.163.com/dy/media/T1603594732083.html"
heders = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
rsp = requests.get(url, headers=heders)
hot = rsp.content.decode('utf-8')
html = etree.HTML(hot)
today_url = html.xpath("//ul[@class='list_box cur']/li/a/@href")
rsp = requests.get(today_url, headers=heders)
hot = rsp.content.decode('utf8')
html = etree.HTML(hot)
news_list = html.xpath('//div[@class="post_body"]/p//text()')
news_list = news_list
for news in news_list:
    print(news)
loca = time.strftime('%Y-%m-%d-%H-%M-%S')
f = open(str(loca) + '.txt', 'w', encoding='utf-8')
for news in news_list:
    f.write(news)
    f.write('\n')
f.close()


输出 txt 格式 加上时间戳方便 辨识   

long8586 发表于 2022-7-5 23:32

打个包啊!{:1_899:}

he先生 发表于 2022-7-6 00:55

能推送到手机里面看吗?

king100 发表于 2022-7-6 01:28

学习了,打个包啊

wocuole 发表于 2022-7-6 06:41

感谢分享

xiadongming 发表于 2022-7-6 08:05

89684828 发表于 2022-7-6 08:17

谢谢楼主,期待更好的作品!

GeorgeAlone233 发表于 2022-7-6 08:24

he先生 发表于 2022-7-6 00:55
能推送到手机里面看吗?

用微信的云扫码,就可以实现定时收到推送了

lizooo 发表于 2022-7-6 08:34

好家伙,学到了!楼主没给成品,自个试试能搞出个成品不
页: [1] 2 3 4
查看完整版本: Python爬取每日早报-新手