如何使用BeautifulSoup直接读取网页链接内容代替手动粘贴页面源码
Python通过URL直接获取网页内容的代码修改方案
核心替换部分
你原有代码中手动定义空html_doc三重引号字符串的整段代码需要替换,其余BeautifulSoup解析逻辑无需改动。推荐优先使用requests库实现,比urllib系列上手门槛更低。
方案1:使用requests库实现(推荐)
- 先执行安装命令:
pip install requests - 修改后完整代码:
from bs4 import BeautifulSoup import re import requests # 替换为你需要爬取的目标网页链接 target_url = "https://你的目标网页地址" # 添加请求头模拟浏览器访问,避免被基础反爬拦截 req_headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } # 发送GET请求获取网页内容 resp = requests.get(target_url, headers=req_headers) # 自动匹配编码,避免中文乱码 resp.encoding = resp.apparent_encoding # 原有解析逻辑完全保留 soup = BeautifulSoup(resp.text, 'html.parser') dev = soup.find_all('span', {'class': 'title'})
方案2:使用urllib3实现
如果你坚持用urllib3,修改后完整代码如下:
from bs4 import BeautifulSoup import re import urllib3 target_url = "https://你的目标网页地址" req_headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } # 创建连接池发送请求 http_pool = urllib3.PoolManager() resp = http_pool.request('GET', target_url, headers=req_headers) # 解码获取网页源码 html_doc = resp.data.decode('utf-8') # 原有解析逻辑完全保留 soup = BeautifulSoup(html_doc, 'html.parser') dev = soup.find_all('span', {'class': 'title'})
注意:部分网站有反爬限制,添加User-Agent可规避大部分基础拦截,若遇到需要登录、校验验证码的场景需要额外调整请求逻辑。
内容的提问来源于stack exchange,提问作者WeedJuice420
相关产品推荐
相关产品推荐

