pizzal0ver 2020-11-25 13:19 采纳率: 0%
浏览 84

Python IDLE 如何爬取新浪新闻网站上的所有链接

用IDLE,我写的代码可以爬,但是只能爬到https://news.sina.com.cn/为前缀的文字内容,包括video,slids啥的都爬不到,这个咋改一下可以爬取全部链接啊。

以下是代码段

 

 

import re
import os
import requests

res=requests.get("http://roll.news.sina.com.cn/news/gnxw/gdxw1/index.shtml")
res=requests.get("https://news.sina.com.cn/china/")
#news.sina.com.cn/c/2020-11-21/doc-iiznezxs2947425.shtml
res.encoding = 'utf-8'
print(res.text)

urllist=re.findall('<a href="https://news.sina.com.cn/[a-z]{1}/[a-zA-Z0-9/-]+.shtml"', res.text)

print(len(urllist))

#<a href="http://news.sina.com.cn/c/nd/2018-09-12/doc-ihiycyfx5412189.shtml"
for u in urllist[0:10]:
   url=u[9:len(u)-1]
   print(url)
   res=requests.get(url)
   res.encoding='utf-8'
   #http://news.sina.com.cn/o/2018-10-19/doc-ifxeuwws5952620.shtml
   #得到文件名doc-ifxeuwws5952620.shtml
   filename=re.findall("/[a-zA-Z0-9-.]+$", url)
   f=open("sinanews\\"+filename[0][1:],"wb")
   f.write(res.text.encode("utf-8"))   #html原始文档内容
   f.close()

print(len(urllist))
 

  • 写回答

1条回答 默认 最新

  • 清风未明月 2020-11-26 11:22
    关注

    你这个匹配的就匹配到https://news.sina.com.cn/为前缀的文字内容啊,要想爬其他的还得设置其他的匹配代码

    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值