欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python正則抓取網(wǎng)易新聞的方法示例

 更新時(shí)間:2017年04月21日 14:37:22   作者:我要的shine  
這篇文章主要介紹了Python正則抓取網(wǎng)易新聞的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python使用正則進(jìn)行網(wǎng)易新聞抓取操作的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python正則抓取網(wǎng)易新聞的方法。分享給大家供大家參考,具體如下:

自己寫了些關(guān)于抓取網(wǎng)易新聞的爬蟲,發(fā)現(xiàn)其網(wǎng)頁(yè)源代碼與網(wǎng)頁(yè)的評(píng)論根本就對(duì)不上,所以,采用了抓包工具得到了其評(píng)論的隱藏地址(每個(gè)瀏覽器都有自己的抓包工具,都可以用來(lái)分析網(wǎng)站)

如果仔細(xì)觀察的話就會(huì)發(fā)現(xiàn),有一個(gè)特殊的,那么這個(gè)就是自己想要的了

然后打開鏈接就可以找到相關(guān)的評(píng)論內(nèi)容了。(下圖為第一頁(yè)內(nèi)容)

接下來(lái)就是代碼了(也照著大神的改改寫寫了)。

#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'+'|'+'評(píng)論'+'|'+'踩'+'|'+'頂'+'\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款非常方便的正則表達(dá)式工具供大家參考使用:

JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript

正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案

    簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案

    這篇文章主要介紹了簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 利用Python打造一個(gè)多人聊天室的示例詳解

    利用Python打造一個(gè)多人聊天室的示例詳解

    這篇文章主要介紹的是利用Python實(shí)現(xiàn)的一個(gè)簡(jiǎn)易的多人聊天室,文中的示例代碼講解詳細(xì),對(duì)學(xué)習(xí)Python有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2021-12-12
  • Python matplotlib庫(kù)的安裝和簡(jiǎn)單使用

    Python matplotlib庫(kù)的安裝和簡(jiǎn)單使用

    本文主要介紹matplotlib庫(kù)的安裝和簡(jiǎn)單使用,針對(duì)新手,首先從升級(jí)pip工具開始,然后使用pip工具從國(guó)內(nèi)鏡像快速下載安裝matplotlib庫(kù),同時(shí)附帶簡(jiǎn)單完整的python代碼,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-10-10
  • Python專用方法與迭代機(jī)制實(shí)例分析

    Python專用方法與迭代機(jī)制實(shí)例分析

    這篇文章主要介紹了Python專用方法與迭代機(jī)制,包括類的私有方法、專有方法、模塊私有對(duì)象、迭代__iter__()方法的對(duì)象等,需要的朋友可以參考下
    2014-09-09
  • Python的數(shù)據(jù)結(jié)構(gòu)與算法的隊(duì)列詳解(3)

    Python的數(shù)據(jù)結(jié)構(gòu)與算法的隊(duì)列詳解(3)

    這篇文章主要為大家詳細(xì)介紹了Python的隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決

    Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update

    在使用Jupyter Notebook或JupyterLab進(jìn)行交互式編程時(shí),我們可能會(huì)遇到各種導(dǎo)入錯(cuò)誤,本文就來(lái)介紹一下Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決,感興趣的可以了解一下
    2024-06-06
  • Python實(shí)現(xiàn)將JSON格式文件導(dǎo)入redis

    Python實(shí)現(xiàn)將JSON格式文件導(dǎo)入redis

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)將JSON格式文件導(dǎo)入redis的多種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • Anaconda+VSCode配置tensorflow開發(fā)環(huán)境的教程詳解

    Anaconda+VSCode配置tensorflow開發(fā)環(huán)境的教程詳解

    Anaconda是一個(gè)開源的python發(fā)行版本,是現(xiàn)在比較流行的python數(shù)據(jù)科學(xué)平臺(tái),可以對(duì)python的科學(xué)包做到有效管理。這篇文章主要介紹了Anaconda+VSCode配置tensorflow開發(fā)環(huán)境,需要的朋友可以參考下
    2020-03-03
  • python使用鎖訪問(wèn)共享變量實(shí)例解析

    python使用鎖訪問(wèn)共享變量實(shí)例解析

    這篇文章主要介紹了python使用鎖訪問(wèn)共享變量實(shí)例解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 學(xué)習(xí)Python列表的基礎(chǔ)知識(shí)匯總

    學(xué)習(xí)Python列表的基礎(chǔ)知識(shí)匯總

    本文給大家匯總介紹了學(xué)習(xí)Python列表的一些基礎(chǔ)知識(shí),有了這份python列表的資料,對(duì)大家初識(shí)Python列表會(huì)非常有幫助,希望大家喜歡
    2020-03-03

最新評(píng)論