这是一个大略的网络爬虫示例,利用了 requests 库来发送 HTTP 要求并获取网页内容,利用 BeautifulSoup 库来解析网页内容。
代码阐明如下:
1.导入所需的库导入 requests 库并将其重命名为 rq,用于发送 HTTP 要乞降获取网页内容。
import requests as rq
从 bs4 库导入 BeautifulSoup 类,用于解析 HTML 内容。
from bs4 import BeautifulSoup
2.获取用户输入的链接
提示用户输入一个链接,并将其保存在 url 变量中。
url = input(34;Enter Link: ")
3.发送 HTTP 要求获取网页内容利用条件语句判断用户输入的链接是否以 "https" 或 "http" 开头。如果是,则利用 rq.get(url) 发送 GET 要求获取网页内容,并将相应保存在 data 变量中。如果不是,则在链接前添加 "https://" 并利用 rq.get() 发送要求,将相应保存在 data 变量中。4.利用 BeautifulSoup 解析网页内容
将 data.text(网页内容)通报给 BeautifulSoup 类的布局函数,指定解析器为 "html.parser",创建一个 BeautifulSoup 工具 soup。
soup = BeautifulSoup(data.text, "html.parser")
5.提取链接创建一个空列表 links 用于存储提取的链接。利用 soup.find_all("a") 查找网页中所有的 <a> 标签,并返回一个包含这些标签的列表。遍历列表中的每个标签,利用 link.get("href") 获取每个标签中的 "href" 属性值,并将其添加到 links 列表中。6.将提取的链接写入文件利用 with open("myLinks.txt", 'a') as saved: 打开一个文件 "myLinks.txt",以追加模式。利用 print(links[:100], file=saved) 将 links 列表中的前 100 个链接写入文件中,每个链接占一行。如果须要每次覆盖文件内容而不是追加,可以将文件打开模式由 'a' 改为 'w'。
这段代码的功能是获取用户输入的链接对应网页中的前 100 个链接,并将这些链接写入到名为 "myLinks.txt" 的文件中。
运行截图附完全代码
import requests as rqfrom bs4 import BeautifulSoupurl = input("Enter Link: ")if ("https" or "http") in url: data = rq.get(url)else: data = rq.get("https://" + url)soup = BeautifulSoup(data.text, "html.parser")links = []for link in soup.find_all("a"): links.append(link.get("href"))# 将输出写入文件(myLinks.txt)# 可以将“a”变动为“w”以每次覆盖文件with open("myLinks.txt", 'a') as saved: print(links[:10], file=saved)