使用BeautifulSoup刮取域名

时间:2013-11-06 20:05:40

标签: python beautifulsoup

我正在尝试使用BeautifulSoup从sameip.org抓取域名列表,我的代码如下:

import urllib, urllib2, cookielib, re, io, sys
from bs4 import BeautifulSoup

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

resp = opener.open('http://sameip.org/ip/141.101.125.122').read()
soup = BeautifulSoup(resp)
for tr in soup.find_all('tr'):
    tds = tr.find_all('td')
    for x in tds:
        print x

工作蝙蝠刮更多数据,我只需要刮掉域名,例如:

tcjayfund.org
fjminc.com
amandabillyrock.com
fjmclinics.com

我该怎么做?

1 个答案:

答案 0 :(得分:1)

查看代码打印出来的内容,第一行显然是标题行,而在每个后续行中,第二行是域。所以:

for tr in soup.find_all('tr')[1:]:
    tds = tr.find_all('td')
    print tds[1].text.strip()

或者,如果您想将它们全部放入列表而不是打印它们:

domains = [tr.find_all('td')[1].text.strip() for tr in soup.find_all('tr')[1:]]

在设计得更好的网站中,您需要使用ID和结构关系而不是像这样的固定索引,但是当他们刚刚看到像这样的裸表时,实际上没有办法解决它。