我已经做了一个功能,以刮网站。该函数可以抓取网站并获取网站内部的url。你知道吗
print links #scrape() http://www.web1.to/something http://www.web2.gov.uk/something http://www.web3.com/something http://www.web4.com/something http://www.web5.com/something http://www.web6.com/something
在获取时,它也会检索不必要的站点链接或带有我要删除的字符串.rdf。你知道吗
def scrape()
.
.
links = re.findall('href="(http.*?)"', sourceCode)
for link in set(links):
if 'web1.to' in link:
pass
elif 'web2.gov.' in link:
pass
elif '.rdf' in link:
pass
else:
return link
#print link; #it seems to work(*)
#this section which call scrape function and prints the links
for web in scrape():
print web
time.sleep(1)
我已经创建了这个函数,如果在scrape函数中使用print,它似乎可以工作(请参见注释行#print链接)。但是当我在外面调用它时,它只返回一个url
http://www.web6.com/something
然后我删除了for循环
if 'web1.to' in link:
pass
elif 'web2.gov.' in link:
pass
elif 'web3.com' in link:
pass
else:
return link
使用此修改的函数从外部打印。我在这里给出的条件不起作用,它会打印所有的网站。你知道吗
我知道我在编码时犯了一些逻辑错误,但我看不出来。你能帮我吗
请执行以下操作:
案例2:
您已经从内部删除了for循环,现在尝试访问
"link"
来检查各种条件,但是link
没有定义,因此出现了错误。你知道吗函数正在返回找到的第一个有效链接。尝试在
scrape
函数顶部添加新列表:每次找到有效链接时,请将其附加到有效链接列表中:
检查完所有链接后,返回整个列表:
尝试以下操作:
相关问题 更多 >
编程相关推荐