首页 > 编程知识 正文

python爬取网页链接,python 超链接

时间:2023-05-05 19:59:33 阅读:285146 作者:4470

        今天给大家分享一个Python基本代码爬取超链接文字及超链接,及一一对应存放到本地文件夹TXT文件中,这里因为我是一个Python初学者,所以所写的代码非常简单,对大家而言也是非常容易理解的。

        这里我以我的博客为例写了一个,前面还是逐步解释,后面会附上完整的代码:

首先我们依旧是爬取网页的三个步骤,HTML下载器(生成URL,下载内容),第二;URL管理器,第三;HTML解析器(解析输出):

url = "https://blog.csdn.net/zjy18886018024?t=1"con=requests.get(url).textcontent = urllib.request.urlopen(url).read()soup=BeautifulSoup(content,"html.parser")

下面是使用正则表达式爬取超链接,这个正则表达式还是有一些难度,这里我就不多加详解,想要了解的朋友可以去网上参考教程。

lianji=re.findall('rel="external nofollow" 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 requestsimport re num=[]lianjie=[]url = "https://blog.csdn.net/zjy18886018024?t=1"con=requests.get(url).textcontent = urllib.request.urlopen(url).read()soup=BeautifulSoup(content,"html.parser") top=soup.find_all(attrs={"class":"text-truncate"})lianji=re.findall('rel="external nofollow" 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=0strc=[]while j<len(nu): # print(nu[j].strip(),lianji[i]) strc.append(nu[j].strip()) j=j+1m=0tops=""while m<len(strc): tops+=str(strc[m])+"t"+lianji[m]+"n" m=m+1print(tops)k=0while 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("写入成功")

结果如下:




这些代码很基础简单吧,所以不管我们学什么,首先看重的是基础,万丈高楼平地起,切不可好高骛远。好了,今天就分享到这里了,有什么问题可以给我留言,我给大家解答。




版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。