爬虫----爬取搜狐新闻时政类
一 、整体流程
爬取页面:https://www.sohu.com/c/8/1460?spm=smpc.news-home.top-subnav.2.1627024626549cMWiORW
获取url——爬取出版社及新闻名称及其超链接——解析数据——存储数据
二、分析
观察页面发现,搜狐新闻页面属于动态页面(动态页面也可采取selenium获取数据,效率比较慢)
打开network,XHR并没有想要的内容,所以得换个思路
network中杂七杂八的请求比较多,可以过滤掉便于查看可疑请求
在ALL中发现该文件有需要的内容
分析一下url
发现page每次变化
可以采用字符串拼接出来url
三、代码实现
import requests import re # 获取数据 def get_one_page(url): response = requests.get(url) return response.text # 采用正则进行提取数据 def parse_one_page(data): result = re.findall(r '(\"title\":\".*?\").*?(\"authorName\":\".*?\").*?(\"originalSource\":\".*?\")' , data) return result # 写入数据 def write_to_file(content): with open ( 'result.txt' , 'a' , encoding = 'utf-8' ) as f: f.write(content) # 根据page获取数据 def main(page): url = "https://v2.sohu.com/public-api/feed?scene=CATEGORY&sceneId=1460&size=20&page=" + str (page) data = get_one_page(url) for item in parse_one_page(data): write_to_file( str (item)) if __name__ = = '__main__' : for i in range ( 1 , 20 ): main(page = i) |
四、结果
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步