python網路爬蟲入門
阿新 • • 發佈:2018-12-13
1、獲取網頁原始碼
from urllib import request
fp=request.urlopen("https://blog.csdn.net")
content=fp.read()
fp.close()
2、從原始碼中提取資訊
這裡需要使用可以從HTML或者xml檔案中提取資料的python庫,beautiful soup
安裝該庫:
pip3 install beautifulsoup4
from bs4 import BeautifulSoup soup = BeautifulSoup(html) for x in soup.findAll(name='a'): # 找出所有的a標籤 print('attrs:',a.attrs) # 輸出a標籤的屬性 #利用正則,找出所有id=link數字 標籤 for a in soup.findAll(attrs={'id':re.compile('link\d')}) print(a)
3、對資訊進行處理
可以寫入檔案,也可以做進一步處理,例如清洗
示例程式碼如下:
from bs4 import BeautifulSoup from urllib import request import re import chardet import sys import io #改變標準輸出的預設編碼 sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') fp=request.urlopen("https://blog.csdn.net") html=fp.read() fp.close() # 判斷編碼方式 det = chardet.detect(html) # 使用該頁面的編碼方式 soup = BeautifulSoup(html.decode(det['encoding'])) # 找出屬性為href=http或者href=https開頭的標籤 for tag in soup.findAll(attrs={'href':re.compile('http|https')}): print(tag) with open(r'C:\Users\Van\Desktop\test.csv', 'a+') as file: content = tag.attrs['href'] + '\n' file.write(content) #寫入檔案