Alex.Merceryj 发表于 2021-11-25 08:46

Python 爬取早报

本帖最后由 Alex.Merceryj 于 2022-6-10 09:37 编辑

## 参考地址
>- https://www.cnblogs.com/Alex-Mercer/p/15596617.html


## 说明
每天早上自己搜新闻太麻烦了,找了个早报网页,直接Python获取就行
## 更新说明
*该网页增加了反爬机制,加上请求头就可以了
## 代码
```py
'''
早报
早报地址:https://www.163.com/dy/media/T1603594732083.html
'''
import requests
from lxml import etree

def main():
    url="https://www.163.com/dy/media/T1603594732083.html"
    # 增加请求头
    headers={
      "Host": "www.163.com",
      "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36',
    }
    rsp=requests.get(url,headers=headers)
    html=etree.HTML(rsp.text)
    today_url=html.xpath("//h2[@class='media_article_title']/a/@href")
    rsp=requests.get(today_url,headers=headers)
    html=etree.HTML(rsp.text)
    news_list=html.xpath("//div[@class='post_body']/p//text()")
    news_list=news_list
    for news in news_list:
      print(news.replace("[公众号:365资讯简报]",""))if __name__ == "__main__":
    main()

```
## 效果如下
```
2021年11月25日 星期四 农历十月廿一
1、十五部门:不得因女职工哺乳降低其工资福利待遇、不得予以辞退。
2、国台办:福州至台北支线建设已规划;台远东集团违法违规被罚约4.74亿元,查处工作仍在进行。
3、卫健委:到2025年全国6个月内纯母乳喂养率达50%以上。
4、广州:试行台港澳人员和拥有永久居留权的外国人参加住房公积金制度。
5、激活城乡消费,成都允许临街店铺在门前划定区域内外摆。
6、浙江拟立法:涉个人信息的公共数据匿名、去标识后可受限开放。
7、北京:启动新一轮公租房配租,为二孩及多孩家庭优先分配。
8、明年3月2日至4日,北京冬残奥会火炬接力在北京、延庆、张家口三个赛区举行,火炬手约600名。
9、《长津湖》票房破56.94亿元,超越《战狼2》登顶中国影史票房榜。
10、11月24日17时16分,贵州贵阳市修文县发生4.6级地震,未收到人员伤亡报告。
11、挪威已没有可供征税的汽油车,准备对电动车征税。
12、塞尔维亚一存放约500枚火箭弹的工厂爆炸,已致2死16伤。
13、美国就"北溪-2"再发制裁,俄方抨击:不可接受。
14、美商务部将27个实体和个人列入“军事最终用户”,包括12家中企。
15、瑞典选举出首位女首相:曾任职财政大臣 被视为“务实派”。
【微语】就这一生,可以快乐就不要难过;就这一生,可以努力就不要堕落。
```

Hangjau 发表于 2021-12-3 22:53

luolovehk 发表于 2021-12-2 15:17
大佬指导一下,这个要怎么把所有信息合并在一条发送,我运行这个代码是一行一条信息发送。


你这里app.send_text(news) 本身就是发送列表中的元素,不用for循环,直接
app = Sender()
app.send_text("\n".join(news_list))
这样就行了 输出就是整个了,注意字符长度这个很重要

luolovehk 发表于 2021-12-2 15:17

Hangjau 发表于 2021-11-27 19:16
可以尝试通过企业微信给自己发https://www.52pojie.cn/thread-1513913-1-1.html

大佬指导一下,这个要怎么把所有信息合并在一条发送,我运行这个代码是一行一条信息发送。

'''
早报
早报地址:https://www.163.com/dy/media/T1603594732083.html
'''
import requests
from lxml import etree
from pywchat import Sender

def main():
    url="https://www.163.com/dy/media/T1603594732083.html"
    rsp=requests.get(url)
    html=etree.HTML(rsp.text)
    today_url=html.xpath("//h2[@class='media_article_title']/a/@href")
    rsp=requests.get(today_url)
    html=etree.HTML(rsp.text)
    news_list=html.xpath("//div[@class='post_body']/p//text()")
    news_list=news_list
    app = Sender()
    for news in news_list:
      print(app.send_text(news))
if __name__ == "__main__":
    main()

funnykeke 发表于 2021-11-25 08:51

我觉得很牛逼,点赞

CRG_44 发表于 2021-11-25 08:53

不错,点赞!

wqipk 发表于 2021-11-25 08:59

感谢分享

chizhuba1 发表于 2021-11-25 09:02

不错,很方便,谢谢分享

zx2700 发表于 2021-11-25 09:03

谢谢分享{:1_921:}

UCLA 发表于 2021-11-25 09:04

感谢分享

shavon 发表于 2021-11-25 09:06

爬取的早报发给自己的微信,怎么操作呀?

a534675219 发表于 2021-11-25 09:07


感谢分享

qianshang666 发表于 2021-11-25 09:07

shavon 发表于 2021-11-25 09:06
爬取的早报发给自己的微信,怎么操作呀?

用server酱
页: [1] 2 3 4 5 6
查看完整版本: Python 爬取早报