url - beautifulsoup 仅返回某些网站的部分 url
问题描述
from bs4 import BeautifulSoup, SoupStrainer
import requests
def get_url(url):
page = requests.get(url.format())
data = page.text
soup = BeautifulSoup(data)
for link in soup.find_all('a'):
print(link.get('href'))
这是基本代码,当我请求时,
# get_url("https://www.marie-claire.es/moda")
get_url("http://spanish.xinhuanet.com/")
新华社回
完整的网址,
不返回完整的超链接,
我不知道为什么我有这个问题以及如何解决它。有没有人有类似的问题?或者知道如何解决这个问题?
解决方案
我怀疑你在这里寻找urljoin:
from bs4 import BeautifulSoup, SoupStrainer
import requests
from urllib.parse import urljoin
def get_url(url):
page = requests.get(url.format())
data = page.text
soup = BeautifulSoup(data)
for link in soup.find_all('a'):
print(urljoin(url, link.get('href')))
你也可以考虑
for link in set(soup.find_all('a')):
以避免结果中的重复。
推荐阅读
- android - 我访问了下载文件夹,但我无法访问 android 上下载文件夹中的文件
- php - 带有数据库下拉菜单的 PHP 开关
- sql - 如何将基于行的上一个和下一个记录数据插入到 MS Access 时间序列数据中?
- android - 为什么Android强制使用screenOrientation fullSensor?
- python - Python中基类的NotImplentedError
- huggingface-transformers - 如何将 SuperGLUE 与拥抱脸转换器一起使用
- javascript - 如何通过javascript api调用将批量数据加载到客户端
- c# - MongoDB - 查询字典中的值
- reactjs - 登录反应后重定向到仪表板
- r - 如何拆分这些成分后跟括号内不同数量的缩写