我想在这个网站上找到公司名称https://siftery.com/microsoft-outlook 基本上它列出了一些使用Microsoft Outlook的公司。 我使用了BeautifulSoup,requests,urllib和urllib2,但我仍然没有得到使用Microsoft Outlook的公司的名称,即使在网站的第一页也没有。
我写的代码如下 -
r = requests.get('http://siftery.com/microsoft-outlook')
print(str(r.content))
f=open('abc.txt','w')
f.write(r.content)
f.close()
和看起来很有趣的部分输出是这个 -
({"名称":"营销""处理":"营销""分类&#34 ;: [{" name":" Marketing Automation"," handle":" marketing-automation"," external_id": " tgJ_49k7v4J-wV"," parent_handle":null,"类别":[{"名称":"营销自动化平台&# 34;"处理":"营销自动化平台"" EXTERNAL_ID":" tgJLE9aHoLdneT"" parent_handle&#34 ;:"营销自动化"},
BeautifulSoup也给了我相同的输出,其他库也是如此。 好像" external_id"公司名称在哪里?我不确定。我还尝试使用gedit手动查找公司名称,例如Acxiom,但无法找到任何事件。
答案 0 :(得分:1)
该网站使用javascript加载信息,这意味着当您执行请求时,DOM将在没有信息的情况下呈现,因为它是异步加载的,对于您应该使用selenium的网站。
注意:
在构建一个scraper之前,您应该查看该站点是否具有禁用CORS的api或端点,在您的情况下,您可以获取向https://siftery.com/product-json/<product_name>
发送请求的信息
答案 1 :(得分:0)
数据可直接以JSON格式提供。您可以使用请求来获取它:
import requests
r = requests.post('https://siftery.com/product-json/microsoft-outlook')
data = r.json()['content']
companies = data['companies']
for company in companies:
print(companies[company]['name'])
<强>输出强>
Public Technologies Consalta PagesJaunes.ca Chumbak Media Classified P.I. Works Saatchi & Saatchi Pro Tribeck Strategies Marketecture Solutions, LLC Trinity Ventures ARGOS CFN Services Last.Backend Saatchi & Saatchi USA Netcad Central Element NextGear Capital Masao Avalon Motiwe Bilge Adam Impakt Athletics SOZO Design ThroughTek Abovo42 Acxiom ICEPAY Connexta Clearview Mortgage Coach
您可能需要调查其他类别的信息:
>>> data.keys()
[u'product', u'vendor', u'users', u'group_members', u'companies', u'customers', u'other_categories', u'current_user', u'page_info', u'portfolio_products', u'primary_category', u'metadata']