亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python3使用正則表達式爬取內(nèi)涵段子示例

 更新時間:2018年04月22日 11:49:32   作者:wangbowj123  
這篇文章主要介紹了Python3使用正則表達式爬取內(nèi)涵段子,涉及Python正則匹配與文件讀寫相關操作技巧,需要的朋友可以參考下

本文實例講述了Python3使用正則表達式爬取內(nèi)涵段子的方法。分享給大家供大家參考,具體如下:

似乎正則在爬蟲中用的不是很廣泛,但是也是基本功需要我們?nèi)フ莆铡?/p>

先將內(nèi)涵段子網(wǎng)頁爬取下來,之后利用正則進行匹配,匹配完成后將匹配的段子寫入文本文檔內(nèi)。代碼如下:

# -*- coding:utf-8 -*-
from urllib import request as urllib2
import re
# 利用正則表達式爬取內(nèi)涵段子
url = r'http://www.neihanpa.com/article/list_5_{}.html'
headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0',
}
file_name = '內(nèi)涵段子.txt'
for page in range(2):
# 2表示頁數(shù),可以自行調(diào)整
  fullurl = url.format(str(page+1))
  request = urllib2.Request(url=fullurl, headers=headers)
  response = urllib2.urlopen(request)
  html = response.read().decode('gbk')
  # re.S 如果沒有re.S 則是只匹配一行有沒有符合規(guī)則的字符串,如果沒有則下一行重新匹配
  # 如果加上re.S 則是將所有的字符串作為一個整體進行匹配
  pattern = re.compile(r'<div\sclass="f18 mb20">(.*?)</div>',re.S)
  duanzis = pattern.findall(html)
  for duanzi in duanzis:
    duanzi = duanzi.replace('<p>','').replace('</p>','').replace('<br />','\n').replace('&ldquo;','').replace('&rdquo','').replace('&hellip;','')
    try:
      # 將爬取的段子寫入文件
      file = open(file_name,'a',encoding='utf-8')
      file.write('\n'.join(duanzi.split()))
      file.close()
    except OSError as e:
      print(e)

運行后生成如下圖所示文件:

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

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

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

希望本文所述對大家Python程序設計有所幫助。

相關文章

最新評論