我正在尝试使用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
我该怎么做?
答案 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和结构关系而不是像这样的固定索引,但是当他们刚刚看到像这样的裸表时,实际上没有办法解决它。