爬虫----爬取搜狐新闻时政类
一 、整体流程
爬取页面: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)
四、结果


浙公网安备 33010602011771号