6 python beautifulsoup python-requests
我正在开发一个程序,该程序使用 来在互联网上搜索某些内容xgoogle,然后在结果网站中查找所有文件。我在查找网站中的所有文件时遇到问题。我发现了一个类似的问题,但我无法让它发挥作用。这是我一直在使用的代码。
from bs4 import BeautifulSoup
import requests
def find_files():
url = "http://www.python.org"
soup = BeautifulSoup(requests.get(url).text)
for a in soup.find('div', {'class': 'catlist'}).find_all('a'):
yield url + a['href']
Run Code Online (Sandbox Code Playgroud)
当我调用它时,代码不会运行。我已将 print 语句放入函数中,但没有任何反应。我应该做什么来修复它?这个函数如何返回网站中所有文件的列表?
尝试这个来帮助你开始..
from bs4 import BeautifulSoup
import requests
def find_files():
url = "http://www.python.org"
soup = BeautifulSoup(requests.get(url).text)
hrefs = []
for a in soup.find_all('a'):
hrefs.append(a['href'])
return hrefs
list_of_links = find_files()
## show what you've found:
for link in list_of_links:
print link
Run Code Online (Sandbox Code Playgroud)
正如您将看到的,您不能url将得到。
另外,在运行此命令之前,请检查网站有关网页抓取的政策
如果您想将其作为生成器来执行此操作,则以下内容可能有用:
from bs4 import BeautifulSoup
import requests
def find_files(url):
soup = BeautifulSoup(requests.get(url).text)
for a in soup.find_all('a'):
yield a['href']
for link in find_files("http://www.python.org"):
print link
Run Code Online (Sandbox Code Playgroud)
注意 - 我已经移动了您的位置url以使此代码更可重用。