Python正则抓取网易新闻的方法示例

发布时间 - 2026-01-11 00:46:02    点击率:

本文实例讲述了Python正则抓取网易新闻的方法。分享给大家供大家参考,具体如下:

自己写了些关于抓取网易新闻的爬虫,发现其网页源代码与网页的评论根本就对不上,所以,采用了抓包工具得到了其评论的隐藏地址(每个浏览器都有自己的抓包工具,都可以用来分析网站)

如果仔细观察的话就会发现,有一个特殊的,那么这个就是自己想要的了

然后打开链接就可以找到相关的评论内容了。(下图为第一页内容)

接下来就是代码了(也照着大神的改改写写了)。

#coding=utf-8
import urllib2
import re
import json
import time
class WY():
  def __init__(self):
    self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like '}
    self.url='http://comment.news.163.com/data/news3_bbs/df/B9IBDHEH000146BE_1.html'
  def getpage(self,page):
    full_url='http://comment.news.163.com/cache/newlist/news3_bbs/B9IBDHEH000146BE_'+str(page)+'.html'
    return full_url
  def gethtml(self,page):
    try:
      req=urllib2.Request(page,None,self.headers)
      response = urllib2.urlopen(req)
      html = response.read()
      return html
    except urllib2.URLError,e:
      if hasattr(e,'reason'):
        print u"连接失败",e.reason
        return None
  #处理字符串
  def Process(self,data,page):
    if page == 1:
      data=data.replace('var replyData=','')
    else:
      data=data.replace('var newPostList=','')
    reg1=re.compile(" \[<a href=''>")
    data=reg1.sub(' ',data)
    reg2=re.compile('<\\\/a>\]')
    data=reg2.sub('',data)
    reg3=re.compile('<br>')
    data=reg3.sub('',data)
    return data
  #解析json
  def dealJSON(self):
    with open("WY.txt","a") as file:
      file.write('ID'+'|'+'评论'+'|'+'踩'+'|'+'顶'+'\n')
    for i in range(1,12):
      if i == 1:
        data=self.gethtml(self.url)
        data=self.Process(data,i)[:-1]
        value=json.loads(data)
        file=open('WY.txt','a')
        for item in value['hotPosts']:
          try:
            file.write(item['1']['f'].encode('utf-8')+'|')
            file.write(item['1']['b'].encode('utf-8')+'|')
            file.write(item['1']['a'].encode('utf-8')+'|')
            file.write(item['1']['v'].encode('utf-8')+'\n')
          except:
            continue
        file.close()
        print '--正在采集%d/12--'%i
        time.sleep(5)
      else:
        page=self.getpage(i)
        data = self.gethtml(page)
        data = self.Process(data,i)[:-2]
        # print data
        value=json.loads(data)
        # print value
        file=open('WY.txt','a')
        for item in value['newPosts']:
          try:
            file.write(item['1']['f'].encode('utf-8')+'|')
            file.write(item['1']['b'].encode('utf-8')+'|')
            file.write(item['1']['a'].encode('utf-8')+'|')
            file.write(item['1']['v'].encode('utf-8')+'\n')
          except:
            continue
        file.close()
        print '--正在采集%d/12--'%i
        time.sleep(5)
if __name__ == '__main__':
  WY().dealJSON()

以上就是我爬取的代码了。

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools./regex/javascript

正则表达式在线生成工具:
http://tools./regex/create_reg

更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


# Python  # 正则  # 抓取  # 网易新闻  # Python 通过requests实现腾讯新闻抓取爬虫的方法  # python爬虫获取新浪新闻教学  # python基础教程项目四之新闻聚合  # Python爬取十篇新闻统计TF-IDF  # python使用nntp读取新闻组内容的方法  # 以911新闻为例演示Python实现数据可视化的教程  # Python采集腾讯新闻实例  # Python爬虫爬取新闻资讯案例详解  # 正则表达式  # 自己的  # 进阶  # 操作技巧  # 就会  # 都有  # 相关内容  # 不上  # 数据结构  # 大神  # 给大家  # 采用了  # 就是我  # 写了  # 图为  # 就对  # 更多关于  # 第一页  # 所述 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Laravel如何配置任务调度?(Cron Job示例)  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何在IIS7中新建站点?详细步骤解析  Laravel怎么在Blade中安全地输出原始HTML内容  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel如何配置和使用缓存?(Redis代码示例)  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何在Windows虚拟主机上快速搭建网站?  免费网站制作appp,免费制作app哪个平台好?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  如何在景安云服务器上绑定域名并配置虚拟主机?  Linux安全能力提升路径_长期防护思维说明【指导】  如何用狗爹虚拟主机快速搭建网站?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  如何在IIS管理器中快速创建并配置网站?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  北京专业网站制作设计师招聘,北京白云观官方网站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  WordPress 子目录安装中正确处理脚本路径的完整指南  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  潮流网站制作头像软件下载,适合母子的网名有哪些?  浅谈Javascript中的Label语句  如何快速查询网址的建站时间与历史轨迹?  Laravel如何处理文件下载请求?(Response示例)  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel Docker环境搭建教程_Laravel Sail使用指南  如何在云主机上快速搭建多站点网站?  如何快速选择适合个人网站的云服务器配置?  java ZXing生成二维码及条码实例分享  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  如何用PHP快速搭建CMS系统?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何破解联通资金短缺导致的基站建设难题?  JS碰撞运动实现方法详解  如何在IIS服务器上快速部署高效网站?