列出网站上的所有文件

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 语句放入函数中,但没有任何反应。我应该做什么来修复它?这个函数如何返回网站中所有文件的列表?

mst*_*rdy 5

尝试这个来帮助你开始..

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以使此代码更可重用。