我创建了一个函数,返回给定特定公司名称的url列表。我想知道搜索这个网址的列表,并找到有关该公司是否为另一家公司所有的信息。在
“Marketo”公司被Adobe收购。在
我想返回某家公司是否被收购以及被谁收购。在
以下是我目前所掌握的情况:
import requests
from googlesearch import search
from bs4 import BeautifulSoup as BS
def get_url(company_name):
url_list = []
for url in search(company_name, stop=10):
url_list.append(url)
return url_list
test1 = get_url('Marketo')
print(test1[7])
r = requests.get(test1[7])
html = r.text
soup = BS(html, 'lxml')
stuff = soup.find_all('a')
print(stuff)
我是新的网络抓取,我不知道如何真正搜索每个网址(假设我可以)和找到我所寻找的信息。在
test1的值如下所示:
^{pr2}$
你可以从Crunchbase这样的网站上找到这些信息。在
获取步骤如下:
构建包含目标公司信息的url。假设您找到包含所需信息的url,如:
url = 'https://www.example.com/infoaboutmycompany.html'
使用selenium获取html,因为该站点不允许您直接刮取页面。像这样:
from selenium import webdriver from bs4 import BeautifulSoup driver = webdriver.Firefox() driver.get(url) html = driver.page_source
使用BeautifulSoup从包含信息的div获取文本。它有一个特定的类,在html中可以很容易地找到:
bsobj = BeautifulSoup(html, 'lxml') res = bsobj.find('div', {'class':'alpha beta gamma'}) res.text.strip()
不到10行代码就可以得到它。在
当然,它可以改变你的列表,从一个url列表到一个公司列表,希望能被该站点考虑。对marketo来说,它是有效的。在
您可以通过浏览crunchbase网站来获取此信息信息。那个缺点是你将限制你的搜索到他们的网站。为了扩展这一点,你也许还可以包括一些其他网站。在
样本输出:
^{pr2}$注意事项
阅读crunchbase Terms并在将其部署到任何商业项目之前征求他们的同意。
同时检查crunchbase api-我认为这将是继续你所要求的东西的合法方式。
相关问题 更多 >
编程相关推荐