1. 程式人生 > >Python基礎程式碼爬取超連結文字及連結

Python基礎程式碼爬取超連結文字及連結

        今天給大家分享一個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("寫入成功")
    

結果如下:



這些程式碼很基礎簡單吧,所以不管我們學什麼,首先看重的是基礎,萬丈高樓平地起,切不可好高騖遠。好了,今天就分享到這裡了,有什麼問題可以給我留言,我給大家解答。