抓取财富500强公司信息

-1 投票
1 回答
1613 浏览
提问于 2025-04-18 17:12

我正在尝试从http://fortune.com/fortune500这个网站上抓取公司信息,用于我的论文。当我从这个链接下载网页内容时,发现里面没有可以解析的链接。不过,如果我在Chrome浏览器中打开这个链接,它会自动跳转到第一个公司的页面。

有没有人能帮我解释一下发生了什么,以及我该如何从原始网址找到公司页面的链接呢?

1 个回答

2

首先,你需要获取一个叫做 postid 的东西,然后向 /data/franchise-list 发送一个请求,接着从第一个文章中获取网址:

import json
import re
from urllib2 import urlopen
from urlparse import urljoin
from bs4 import BeautifulSoup

data = urlopen('http://fortune.com/fortune500/')
soup = BeautifulSoup(data)
postid = next(attr for attr in soup.body['class'] if attr.startswith('postid'))
postid = re.match(r'postid-(\d+)', postid).group(1)

url = "http://fortune.com/data/franchise-list/{postid}/1/".format(postid=postid)
data = json.load(urlopen(url))

resulting_url = urljoin(url, data['articles'][0]['url'])
print resulting_url

输出结果:

http://fortune.com/fortune500/wal-mart-stores-inc-1/

撰写回答