前幾天剛剛接觸爬蟲,簡單爬取百度百科首頁的a标簽和span标簽中的内容
适合初學者閱讀,大神就不要浪費寶貴的時間了
# python3中用urllib.request表示python2中的urllib2
import urllib.request as urllib2
# 使用第三方子產品,使用BeautifulSoup
from bs4 import BeautifulSoup as bs
# 網頁出現錯誤的子產品
from urllib.error import URLError,HTTPError,ContentTooShortError
# 存儲爬取的資料
# 靜态網頁a标簽資料
a=[]
# 靜态網頁span标簽資料
span=[]
# 下載下傳url
def download(url):
print("download..."+url)
# 對url錯誤作異常處理
try:
html= urllib2.urlopen(url)
except(URLError,HTTPError,ContentTooShortError) as e:
print("download error:"+e.reason)
html=None
return html
# 解析拿到的url
def parser_html(response):
soup = bs(response, 'html.parser')
return soup
# 列印出資訊
def out_information(soup):
# 記錄爬取了多少資料
indexA=
indexSpan=
# 列印出title标簽的内容
print(soup.title.string)
# 将span标簽的資訊存儲在span清單裡
for link in soup.find_all('span'):
span.append(str(indexA) + link.text)
indexA +=
# 将a标簽的資訊存儲在a清單裡
for link in soup.find_all('a'):
a.append(str(indexSpan) + link.text)
indexSpan +=
# 列印出span清單的内容
print(span)
# 列印出a清單的内容
print(a)
# 程式入口,注意是雙下劃線
if __name__=="__main__":
# 需要通路的url
url = "https://baike.baidu.com"
# 下載下傳url
response=download(url)
# 解析網頁
soup=parser_html(response)
# 列印内容
out_information(soup)
效果:
如有疑問,定當竭力為您解答。