Python 下载网页中所有链接的网络爬虫

Python 下载网页中所有链接的网络爬虫,python,python-3.x,web-scraping,Python,Python 3.x,Web Scraping,我是python初学者,已经编写了一段代码来下载指定url中的所有链接。有没有更好的方法来实现这一点,下面的代码是否正确 #!/usr/bin/python3 import re import requests def get_page(url): r = requests.get(url) print(r.status_code) content = r.text return content if __name__ =="__main__": u

我是python初学者,已经编写了一段代码来下载指定url中的所有链接。有没有更好的方法来实现这一点,下面的代码是否正确

#!/usr/bin/python3

import re
import requests

def get_page(url):
    r = requests.get(url)
    print(r.status_code)
    content = r.text
    return content

if __name__ =="__main__":
    url = 'http://developer.android.com'
    content = get_page(url)
    content_pattern = re.compile('<a href=(.*?)>.*?</a>')
    result = re.findall(content_pattern, content)
    for link in result:
        with open('download.txt', 'wb') as fd:
            for chunk in r.iter_content(chunk_size):
                fd.write(chunk)
#/usr/bin/python3
进口稀土
导入请求
def get_页面(url):
r=请求。获取(url)
打印(r.状态\ U代码)
content=r.text
返回内容
如果名称=“\uuuuu main\uuuuuuuu”:
url='1〕http://developer.android.com'
内容=获取页面(url)
内容模式=重新编译(“”)
结果=re.findall(内容模式,内容)
对于链接输入结果:
以open('download.txt','wb')作为fd:
对于r.iter\u内容中的块(块大小):
fd.write(块)

您可能需要研究linux
wget
命令,该命令已经能够执行您想要的操作。如果您真的需要python解决方案,则可以分别执行HTTP请求和解析HTML。

您可能需要研究linux
wget
命令,该命令已经能够执行您想要的操作。如果您真的需要python解决方案,则可以分别执行HTTP请求和解析HTML。

您可能需要研究linux
wget
命令,该命令已经能够执行您想要的操作。如果您真的需要python解决方案,则可以分别执行HTTP请求和解析HTML。

您可能需要研究linux
wget
命令,该命令已经能够执行您想要的操作。如果您确实需要python解决方案,则可以分别执行HTTP请求和解析HTML。

尝试以下方法:

from bs4 import BeautifulSoup
import sys
import requests

def get_links(url):

    r = requests.get(url)
    contents = r.content

    soup = BeautifulSoup(contents)
    links =  []
    for link in soup.findAll('a'):
        try:
            links.append(link['href'])
        except KeyError:
            pass
    return links

if __name__ == "__main__":
    url = sys.argv[1]
    print get_links(url)
    sys.exit()
试试这个:

from bs4 import BeautifulSoup
import sys
import requests

def get_links(url):

    r = requests.get(url)
    contents = r.content

    soup = BeautifulSoup(contents)
    links =  []
    for link in soup.findAll('a'):
        try:
            links.append(link['href'])
        except KeyError:
            pass
    return links

if __name__ == "__main__":
    url = sys.argv[1]
    print get_links(url)
    sys.exit()
试试这个:

from bs4 import BeautifulSoup
import sys
import requests

def get_links(url):

    r = requests.get(url)
    contents = r.content

    soup = BeautifulSoup(contents)
    links =  []
    for link in soup.findAll('a'):
        try:
            links.append(link['href'])
        except KeyError:
            pass
    return links

if __name__ == "__main__":
    url = sys.argv[1]
    print get_links(url)
    sys.exit()
试试这个:

from bs4 import BeautifulSoup
import sys
import requests

def get_links(url):

    r = requests.get(url)
    contents = r.content

    soup = BeautifulSoup(contents)
    links =  []
    for link in soup.findAll('a'):
        try:
            links.append(link['href'])
        except KeyError:
            pass
    return links

if __name__ == "__main__":
    url = sys.argv[1]
    print get_links(url)
    sys.exit()


代码名\uuuu==“\uuuu main”比较什么?这意味着什么?这意味着;如果此文件是用于导入到另一个文件或程序入口的模块,并且此代码似乎正确,那么您要求的是什么?@myildirim如何指定块大小?此代码段使用请求模块,您可以在其文档中找到您搜索的内容。代码名\uuuu==“\uu main”比较了什么?这意味着什么?这意味着;如果此文件是用于导入到另一个文件或程序入口的模块,并且此代码似乎正确,那么您要求的是什么?@myildirim如何指定块大小?此代码段使用请求模块,您可以在其文档中找到您搜索的内容。代码名\uuuu==“\uu main”比较了什么?这意味着什么?这意味着;如果此文件是用于导入到另一个文件或程序入口的模块,并且此代码似乎正确,那么您要求的是什么?@myildirim如何指定块大小?此代码段使用请求模块,您可以在其文档中找到您搜索的内容。代码名\uuuu==“\uu main”比较了什么?这意味着什么?这意味着;如果此文件是用于导入到另一个文件或程序入口的模块,并且此代码似乎正确,那么您需要什么?@myildirim如何指定chunk_大小?此代码段使用requests模块,您可以在其文档中找到您要搜索的内容我想要一个python解决方案,并使用beautiful soup进行解析。有必要通过考试吗。为什么r.text还不够?您不想自己解析HTML,尤其是不想使用正则表达式。如果使用适当的库,您将获得更可靠的结果。这在这个回答中已经被很好地涵盖了:谢谢,现在我提供的链接的网页正在被下载,我无法在网页中获得链接,我的目标是下载这些链接中的内容。我需要一个python解决方案,漂亮的汤用于解析。有必要通过考试吗。为什么r.text还不够?您不想自己解析HTML,尤其是不想使用正则表达式。如果使用适当的库,您将获得更可靠的结果。这在这个回答中已经被很好地涵盖了:谢谢,现在我提供的链接的网页正在被下载,我无法在网页中获得链接,我的目标是下载这些链接中的内容。我需要一个python解决方案,漂亮的汤用于解析。有必要通过考试吗。为什么r.text还不够?您不想自己解析HTML,尤其是不想使用正则表达式。如果使用适当的库,您将获得更可靠的结果。这在这个回答中已经被很好地涵盖了:谢谢,现在我提供的链接的网页正在被下载,我无法在网页中获得链接,我的目标是下载这些链接中的内容。我需要一个python解决方案,漂亮的汤用于解析。有必要通过考试吗。为什么r.text还不够?您不想自己解析HTML,尤其是不想使用正则表达式。如果使用适当的库,您将获得更可靠的结果。这在这个回答中已经被很好地涵盖了:谢谢,现在我提供的链接的网页正在被下载,我无法在网页中获得链接,我的目标是下载这些链接中的内容。我该怎么做?