Python 使用beautifulsoup查找标题标记内的链接
我正在尝试收集一个页面上所有标签中的所有链接,并对125页进行收集。我已经创建了下面的循环,但它不会拾取任何链接,但也不会给我任何错误消息Python 使用beautifulsoup查找标题标记内的链接,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我正在尝试收集一个页面上所有标签中的所有链接,并对125页进行收集。我已经创建了下面的循环,但它不会拾取任何链接,但也不会给我任何错误消息 for i in xrange(125,1,-1): page = urllib2.urlopen("http://www.freedomworks.org/issue/budget-spending?page={}".format(i)) soup = BeautifulSoup(page.read()) snippet = sou
for i in xrange(125,1,-1):
page = urllib2.urlopen("http://www.freedomworks.org/issue/budget-spending?page={}".format(i))
soup = BeautifulSoup(page.read())
snippet = soup.find_all('h3')
with io.open('FWurl.txt', 'a', encoding='utf8') as logfile:
for link in snippet.find_all('a'):
fulllink = link.get('href')
logfile.write(fulllink + "\n")
我想这正是BeautifulSoup建造的目的,但我无法理解。提前谢谢。我认为问题在于执行
snippet.find_all
会引发异常--snippet
显然是一个结果集
对象,您需要对其进行迭代,以便实际访问每个h3元素
在将文件修改为以下内容后,我能够检索到您正在查找的数据:
with io.open('FWurl.txt', 'a', encoding='utf8') as logfile:
for i in xrange(125, 1, -1):
page = urllib2.urlopen("http://www.freedomworks.org/issue/budget-spending?page={}".format(i))
soup = BeautifulSoup(page.read())
snippet = soup.find_all('h3')
for h3 in snippet:
for link in h3.find_all('a'):
logfile.write(link.get('href') + "\n")
注意:我不确定每个“h3”是否有一个以上的“a”标记,所以为了安全起见,我迭代了h3。查找所有('a')
。如果每个h3
只有一个a
,您可能只需抓住第一个元素(如果它存在的话),就可以提高代码的效率