Python基礎程式碼爬取超連結文字及連結
阿新 • • 發佈:2019-01-02
今天給大家分享一個Python基本程式碼爬取超連結文字及超連結,及一一對應存放到本地資料夾TXT檔案中,這裡因為我是一個Python初學者,所以所寫的程式碼非常簡單,對大家而言也是非常容易理解的。
這裡我以我的部落格為例寫了一個,前面還是逐步解釋,後面會附上完整的程式碼:
首先我們依舊是爬取網頁的三個步驟,HTML下載器(生成URL,下載內容),第二;URL管理器,第三;HTML解析器(解析輸出):
url = "https://blog.csdn.net/zjy18886018024?t=1" con=requests.get(url).text content = urllib.request.urlopen(url).read() soup=BeautifulSoup(content,"html.parser")
下面是使用正則表示式爬取超連結,這個正則表示式還是有一些難度,這裡我就不多加詳解,想要了解的朋友可以去網上參考教程。
lianji=re.findall('href="(.*?details\/\d{8})',con)
接來來是對空格和字元“原”的處理:
nu.append(num[i].replace("原",""))
strc.append(nu[j].strip())
這裡就是對超連結文字和連結的一一對應處理:
tops+=str(strc[m])+"\t"+lianji[m]+"\n"
這裡的話可能很多朋友和我犯了一個錯誤,就是存入TXT檔案中的時候,不能以列表的形式寫入,不然總會報錯。好了,現在就附上完整的程式碼與結果截圖:
# coding:utf-8 import urllib.request from bs4 import BeautifulSoup import requests import re num=[] lianjie=[] url = "https://blog.csdn.net/zjy18886018024?t=1" con=requests.get(url).text content = urllib.request.urlopen(url).read() soup=BeautifulSoup(content,"html.parser") top=soup.find_all(attrs={"class":"text-truncate"}) lianji=re.findall('href="(.*?details\/\d{8})',con) i=0 nu=[] while i<len(top): num.append(top[i].get_text()) nu.append(num[i].replace("原","")) i=i+1 j=0 strc=[] while j<len(nu): # print(nu[j].strip(),lianji[i]) strc.append(nu[j].strip()) j=j+1 m=0 tops="" while m<len(strc): tops+=str(strc[m])+"\t"+lianji[m]+"\n" m=m+1 print(tops) k=0 while k<len(tops): with open("C:\\Users\\ASUS\\Desktop\\txt1\\neirong.txt","a+") as f: f.write(tops[k]) k=k+1 f.close() print("寫入成功")
結果如下:
這些程式碼很基礎簡單吧,所以不管我們學什麼,首先看重的是基礎,萬丈高樓平地起,切不可好高騖遠。好了,今天就分享到這裡了,有什麼問題可以給我留言,我給大家解答。