爬虫利器BeautifulSoup爬取一个页面的所有URL,可以简单分为三个步骤:
- 使用requests获取页面内容
- 使用BeautifulSoup进行页面内容解析
- 提取并整理所需要的URL
代码实例
# 导入BeautifulSoup和requests模块
from bs4 import BeautifulSoup
import requests
# 获取字符串格式的html_doc。由于content为bytes类型,故需要decode()
html_doc = requests.get('https://xkcd.com/353/').content.decode()
# 使用BeautifulSoup模块对页面文件进行解析
soup = BeautifulSoup(html_doc, 'html.parser')
# 查找所有tag为'a'的html元素,并生成列表
links = soup.find_all('a')
# 获取每个元素中'href'键对应的键值--即URL,并放入url_lst
url_lst = []
for item in links:
url = item.get('href')
url_lst.append(url)
# 过滤url_lst--仅保留包含http的URL
url_lst = list(filter(lambda url_str: 'http' in url_str, url_lst))
print(url_lst)
脚本运行结果,请看下图