美丽的汤只刮半桌

时间:2016-02-20 19:10:32

标签: python web-scraping beautifulsoup

我正在尝试学习如何使用Beautiful Soup,从Wikipedia中抓取一张桌子时遇到了问题。

from bs4 import BeautifulSoup

import urllib2

wiki = 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'

page = urllib2.urlopen(wiki)

soup = BeautifulSoup(page, 'lxml')

print soup

似乎我无法获得完整的维基百科表,但我使用此代码获得的最后一个条目是Omnicon Group,它在源代码中获取/tr之前就停止了。如果你签入原始链接,表格的最后一个条目是Zoetis,所以它会在中途停止。

维基百科源代码中的一切似乎都没问题......对于我可能做错了什么的想法?

2 个答案:

答案 0 :(得分:1)

试试这个。阅读此内容以获取更多http://www.crummy.com/software/BeautifulSoup/bs4/doc/

from bs4 import BeautifulSoup

from urllib.request import urlopen

wiki = 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'

page = urlopen(wiki)

soup = BeautifulSoup(page, 'lxml')

result = soup.find("table", class_="wikitable")

print(result)

这应该是结果中的最后一个<tr>

<tr>
    <td><a class="external text" href="https://www.nyse.com/quote/XNYS:ZTS" rel="nofollow">ZTS</a></td>
    <td><a href="/wiki/Zoetis" title="Zoetis">Zoetis</a></td>
    <td><a class="external text" href="http://www.sec.gov/cgi-bin/browse-edgar?CIK=ZTS&amp;action=getcompany" rel="nofollow">reports</a></td>
    <td>Health Care</td>
    <td>Pharmaceuticals</td>
    <td><a href="/wiki/Florham_Park,_New_Jersey" title="Florham Park, New Jersey">Florham Park, New Jersey</a></td>
    <td>2013-06-21</td>
    <td>0001555280</td>
</tr>

您还需要使用pip install requests和我使用

安装请求
python==3.4.3
beautifulsoup4==4.4.1

答案 1 :(得分:1)

这是我的工作答案。它应该适用于你甚至没有安装lxml。 我用过Python 2.7

from bs4 import BeautifulSoup
import urllib2
wiki = 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'
page = urllib2.urlopen(wiki)
soup = BeautifulSoup(page, "html.parser")
print soup.table