【发布时间】:2015-12-03 03:18:12
【问题描述】:
我在这个问题上遇到了很多麻烦,我想我理解这项工作,但现在我的头因为撞在桌子上而凹了一个凹痕。
我需要做的是制作一个程序,用漂亮的汤来浏览网页,但它会获得某个链接(从页面下方的第 3 或第 20 个链接的任何位置)然后转到第 3 个(或第 20 个,或任何数字)链接并尝试从该页面一遍又一遍地找到第三个链接,次数不详(出于解释目的,我将其保持在 20 以下。我需要在经过多次搜索后找到最后一个(第三个)链接。
我有我的程序,但我无法通过第二次迭代!我确实找到了几个小时的方法并得到了答案,但这是一个无限循环,这对我学习没有帮助。
让我们说这是我必须做的:
在第 7 位找到链接(第一页上的第 7 个链接)。按照那个链接。重复此过程 5 次。答案是您检索到的链接中的姓氏。
我有办法检索名称,只是无法找出循环!
我也有点过分热心地试图找到另一个关于这个的帖子一个小时。有很多类似的,但不是我发现的这个确切的问题。谢谢你的时间。这是我目前所拥有的。
from urllib.request import urlopen
from bs4 import BeautifulSoup
#first page url
url = 'insertwebsitehere.com'
html = urlopen(url).read()
soup = BeautifulSoup(html)
# Retrieve all of the anchor tags
tags = soup('a')
taglist= []
count = 0
for tag in tags:
name = tag.contents[0]
newtag = tag.get('href',None)
#print (newtag)
# add count? count += 1 , then do something when it reaches a certain count?
#taglist.append(newtag), this method didnt really work.
我是一个新的编码员,所以我试图在没有先进技术的情况下做到这一点,我不一定需要答案,只需要帮助。
【问题讨论】:
-
一天后,我发现我必须进行第二次 for 循环,并且基本上将所有代码放入两次,并且比需要的循环次数少一次。仍然不太明白为什么我必须调用 url 打开并再次阅读,我认为只是覆盖 url 会自己做到这一点? Anway,仍然会欣赏更干净的代码。我的最后是 28 行。 (可以少一些,但看起来很丑)
标签: python-3.x web-scraping beautifulsoup web-crawler