Python 和 BeautifulSoup 打开页面
Python and BeautifulSoup Opening pages
我想知道如何使用 BeautifulSoup 打开列表中的另一个页面?我已经关注了this tutorial,但是它并没有告诉我们如何打开列表中的另一个页面。另外,我将如何打开嵌套在 class 中的 "a href"?
这是我的代码:
# coding: utf-8
import requests
from bs4 import BeautifulSoup
r = requests.get("")
soup = BeautifulSoup(r.content)
soup.find_all("a")
for link in soup.find_all("a"):
print link.get("href")
for link in soup.find_all("a"):
print link.text
for link in soup.find_all("a"):
print link.text, link.get("href")
g_data = soup.find_all("div", {"class":"listing__left-column"})
for item in g_data:
print item.contents
for item in g_data:
print item.contents[0].text
print link.get('href')
for item in g_data:
print item.contents[0]
我正在尝试从每个企业的标题中收集 href,然后打开它们并抓取该数据。
我仍然不确定你从哪里得到 HTML,但是如果你想提取所有 href
标签,那么下面的方法应该基于你的图像已发布:
import requests
from bs4 import BeautifulSoup
r = requests.get("<add your URL here>")
soup = BeautifulSoup(r.content)
for a_tag in soup.find_all('a', class_='listing-name', href=True):
print 'href: ', a_tag['href']
通过将 href=True
添加到 find_all()
,它确保仅返回包含 href
属性的 a
元素,因此无需对其进行测试一个属性。
提醒您,您可能会发现某些网站会在尝试一两次后将您拒之门外,因为它们能够检测到您正在尝试通过脚本访问网站,而不是以人的身份访问。如果您觉得自己没有得到正确的回复,我建议您打印 HTML 您要返回的内容,以确保它仍然如您所愿。
如果您想要获取每个链接的 HTML,可以使用以下方法:
import requests
from bs4 import BeautifulSoup
# Configure this to be your first request URL
r = requests.get("http://www.mywebsite.com/search/")
soup = BeautifulSoup(r.content)
for a_tag in soup.find_all('a', class_='listing-name', href=True):
print 'href: ', a_tag['href']
# Configure this to the root of the above website, e.g. 'http://www.mywebsite.com'
base_url = "http://www.mywebsite.com"
for a_tag in soup.find_all('a', class_='listing-name', href=True):
print '-' * 60 # Add a line of dashes
print 'href: ', a_tag['href']
request_href = requests.get(base_url + a_tag['href'])
print request_href.content
使用 Python 2.x 进行测试,对于 Python 3.x 请在打印语句中添加括号。
我遇到了同样的问题,我想分享我的发现,因为我确实尝试了这个答案,由于某些原因它没有用,但经过一些研究我发现了一些有趣的东西。
您可能需要找到“href”link 本身的属性:
您将需要确切的 class,其中包含 href link,我在想 = 31=]":"listing__left-column" 并将其等同于一个变量,例如 "all":
from bs4 import BeautifulSoup
all = soup.find_all("div", {"class":"listing__left-column"})
for item in all:
for link in item.find_all("a"):
if 'href' in link.attrs:
a = link.attrs['href']
print(a)
print("")
我这样做了,我能够进入另一个嵌入主页的 link
我想知道如何使用 BeautifulSoup 打开列表中的另一个页面?我已经关注了this tutorial,但是它并没有告诉我们如何打开列表中的另一个页面。另外,我将如何打开嵌套在 class 中的 "a href"?
这是我的代码:
# coding: utf-8
import requests
from bs4 import BeautifulSoup
r = requests.get("")
soup = BeautifulSoup(r.content)
soup.find_all("a")
for link in soup.find_all("a"):
print link.get("href")
for link in soup.find_all("a"):
print link.text
for link in soup.find_all("a"):
print link.text, link.get("href")
g_data = soup.find_all("div", {"class":"listing__left-column"})
for item in g_data:
print item.contents
for item in g_data:
print item.contents[0].text
print link.get('href')
for item in g_data:
print item.contents[0]
我正在尝试从每个企业的标题中收集 href,然后打开它们并抓取该数据。
我仍然不确定你从哪里得到 HTML,但是如果你想提取所有 href
标签,那么下面的方法应该基于你的图像已发布:
import requests
from bs4 import BeautifulSoup
r = requests.get("<add your URL here>")
soup = BeautifulSoup(r.content)
for a_tag in soup.find_all('a', class_='listing-name', href=True):
print 'href: ', a_tag['href']
通过将 href=True
添加到 find_all()
,它确保仅返回包含 href
属性的 a
元素,因此无需对其进行测试一个属性。
提醒您,您可能会发现某些网站会在尝试一两次后将您拒之门外,因为它们能够检测到您正在尝试通过脚本访问网站,而不是以人的身份访问。如果您觉得自己没有得到正确的回复,我建议您打印 HTML 您要返回的内容,以确保它仍然如您所愿。
如果您想要获取每个链接的 HTML,可以使用以下方法:
import requests
from bs4 import BeautifulSoup
# Configure this to be your first request URL
r = requests.get("http://www.mywebsite.com/search/")
soup = BeautifulSoup(r.content)
for a_tag in soup.find_all('a', class_='listing-name', href=True):
print 'href: ', a_tag['href']
# Configure this to the root of the above website, e.g. 'http://www.mywebsite.com'
base_url = "http://www.mywebsite.com"
for a_tag in soup.find_all('a', class_='listing-name', href=True):
print '-' * 60 # Add a line of dashes
print 'href: ', a_tag['href']
request_href = requests.get(base_url + a_tag['href'])
print request_href.content
使用 Python 2.x 进行测试,对于 Python 3.x 请在打印语句中添加括号。
我遇到了同样的问题,我想分享我的发现,因为我确实尝试了这个答案,由于某些原因它没有用,但经过一些研究我发现了一些有趣的东西。
您可能需要找到“href”link 本身的属性: 您将需要确切的 class,其中包含 href link,我在想 = 31=]":"listing__left-column" 并将其等同于一个变量,例如 "all":
from bs4 import BeautifulSoup all = soup.find_all("div", {"class":"listing__left-column"}) for item in all: for link in item.find_all("a"): if 'href' in link.attrs: a = link.attrs['href'] print(a) print("")
我这样做了,我能够进入另一个嵌入主页的 link