python - 根据已知域查找完整的 URL
问题描述
使用 BeautifulSoup 根据谷歌搜索已知域(如 .microsoft.com)拉取网页。我想提取包括“http(s)://”前缀的整个 URL。
我正在检索有效节点,但我不明白如何指示 find_all 方法包含目标文本左侧的所有文本,包括“http”的第一次出现。
import requests
from bs4 import BeautifulSoup
import urllib3
import re
def make_soup(url):
http = urllib3.PoolManager()
r = http.request("GET", url)
return BeautifulSoup(r.data,'lxml')
# to search
query = "\"\.microsoft\.com\""
try:
from googlesearch import search
for j in search(query, tld="com", num=10, stop=1, pause=2):
#print(j)
page = make_soup(j)
for node in page.find_all(text=lambda x: x and ".microsoft.com" in x):
print(node)
except ImportError:
print("No module named 'google' found")
我收到了以“.microsoft.com”结尾的不错结果,但我希望结果包含完整的 URL,以“http...microsoft.com”开头
解决方案
推荐阅读
- css - 段落内的 CSS 居中文本
- python - AI - 学习最佳组合
- tmux - 使用 tmux 时如何查看一个窗格的总输出?
- pdf - pandoc markdown to pdf:修复丢失的字符警告?
- reactjs - 我正在尝试安装 node-sass 但出现错误。我怎样才能解决这个问题
- python-3.x - Python 安装程序
- php - 在 Container.php 第 767 行:类邮件程序不存在
- flutter - 如何在 Cloud Firestore 中动态创建新集合?
- mirth - 连接到指定地址的 Mirth Connect 管理员登录错误(即使可以在浏览器中访问)?
- android - MaterialButton 内的进度条