Python網路爬蟲實戰
1. 確定 URL
from urllib import request
import re
#定義url
page=50
url="https://tieba.baidu.com/f?kw=%E6%AE%B5%E5%AD%90&ie=utf-8&pn="+str(page)
2.新增headers並抓取頁面程式碼
try:
#定義請求頭
headrs={"User-Agent":" Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"}
#定義請求,傳入請求頭
req=request.Request(url,headers=headrs)
#開啟網頁
resp=request.urlopen(req)
#列印響應碼,解碼
# print(resp.read().decode('utf-8'))
3. 使用正規表示式提取某一頁的所有段子
content=resp.read().decode('utf-8')
#定義正規表示式
#<a rel="noopener" 具體的東西
#.*? 匹配沒用的資料
#(.*?)匹配有用資料分組
#\s 空格
pattern=re.compile(r'<a rel="noopener".*?title=(.*?)\s.*?>(.*?)</a>')
#匹配html
items=re.findall(pattern,content)
#列印解析的內容
for i in items:
print("標題:"+i[0]+" 內容:"+i[1])
except request.URLError as e:
#列印響應碼
if hasattr(e,'code'):
print(e.code)
#列印異常原因
if hasattr(e,'reason'):
print(e.reason)
物件導向模式
from urllib import request
import re
class tieba:
#初始化
def __init__(self):
# 定義url
self.url="https://tieba.baidu.com/f?kw=%E6%AE%B5%E5%AD%90&ie=utf-8&pn="
# 定義請求頭
self.headrs={"User-Agent":" Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"}
#列表,儲存解析後的結果
self.stories=[]
#下載頁面
def getPage(self,page_number):
try:
# 定義請求,傳入請求頭
req=request.Request(self.url+str(page_number),headers=self.headrs)
# 開啟網頁
resp=request.urlopen(req)
# 列印響應碼,解碼
content=resp.read().decode("utf-8")
return content
except request.URLError as e:
# 列印響應碼
if hasattr(e, 'code'):
print(e.code)
# 列印異常原因
if hasattr(e, 'reason'):
print(e.reason)
#解析頁面
def rexgPage(self,content):
# 定義正規表示式
# <a rel="noopener" 具體的東西
# .*? 匹配沒用的資料
# (.*?)匹配有用資料分組
# \s 空格
pattern = re.compile(r'<a rel="noopener".*?title=(.*?)\s.*?>(.*?)</a>')
# 匹配html
items = re.findall(pattern, content)
# 新增解析的內容
for i in items:
# print("標題:" + i[0] + " 內容:" + i[1])
self.stories.append("標題:" + i[0] + " 內容:" + i[1])
#顯示解析的內容
def getContent(self):
for i in self.stories:
print(i)
#建立物件
c=tieba()
#呼叫方法
c.rexgPage(c.getPage(100))
c.getContent()
相關文章
- python網路爬蟲應用_python網路爬蟲應用實戰Python爬蟲
- 網路爬蟲——爬蟲實戰(一)爬蟲
- 【Python爬蟲9】Python網路爬蟲例項實戰Python爬蟲
- python3網路爬蟲開發實戰_Python3 爬蟲實戰Python爬蟲
- 網路爬蟲(六):實戰爬蟲
- 乾貨分享!Python網路爬蟲實戰Python爬蟲
- Python網路爬蟲實戰小專案Python爬蟲
- Python 3網路爬蟲開發實戰Python爬蟲
- Python網路爬蟲實戰專案大全!Python爬蟲
- python網路爬蟲實戰--重點整理Python爬蟲
- 《Python3網路爬蟲開發實戰》教程||爬蟲教程Python爬蟲
- python3網路爬蟲開發實戰_Python 3開發網路爬蟲(一)Python爬蟲
- [Python3網路爬蟲開發實戰] 分散式爬蟲原理Python爬蟲分散式
- Python網路爬蟲實戰(一)快速入門Python爬蟲
- Python3網路爬蟲開發實戰Python爬蟲
- Python網路爬蟲實戰專案大全 32個Python爬蟲專案demoPython爬蟲
- python3網路爬蟲開發實戰pdfPython爬蟲
- Python 爬蟲實戰Python爬蟲
- Python3網路爬蟲快速入門實戰解析Python爬蟲
- 《Python 3網路爬蟲開發實戰》chapter3Python爬蟲APT
- 《python3網路爬蟲開發實戰》--pyspiderPython爬蟲IDE
- Python大型網路爬蟲專案開發實戰(全套)Python爬蟲
- Python3 大型網路爬蟲實戰 — 給 scrapy 爬蟲專案設定為防反爬Python爬蟲
- Python3網路爬蟲快速入門實戰解析(一小時入門 Python 3 網路爬蟲)Python爬蟲
- Python爬蟲實戰之叩富網Python爬蟲
- python網路爬蟲_Python爬蟲:30個小時搞定Python網路爬蟲視訊教程Python爬蟲
- 最新《30小時搞定Python網路爬蟲專案實戰》Python爬蟲
- [Python3網路爬蟲開發實戰] Charles 的使用Python爬蟲
- 《Python3網路爬蟲開發實戰》開源啦!Python爬蟲
- [Python3網路爬蟲開發實戰] --Splash的使用Python爬蟲
- python爬蟲實戰,爬蟲之路,永無止境Python爬蟲
- 圖靈樣書爬蟲 - Python 爬蟲實戰圖靈爬蟲Python
- python實現selenium網路爬蟲Python爬蟲
- python爬蟲實戰教程-Python爬蟲開發實戰教程(微課版)Python爬蟲
- 《網路爬蟲開發實戰案例》筆記爬蟲筆記
- [Python3網路爬蟲開發實戰] 2-爬蟲基礎 2-網頁基礎Python爬蟲網頁
- python DHT網路爬蟲Python爬蟲
- Python網路爬蟲資料採集實戰:Requests和Re庫Python爬蟲