我编写了一个代码,该代码从指定的URL中提取所有链接。 我从在线视频教程中汲取了这个想法。 当我尝试nytimes.com时,是否可以解决。 但是,当我与yell.com试过,我有一个错误抛出:“错误:HTTP错误416:请求范围无法满足- http://www.yell.com/ ”。 我应该采用什么技术来绕过这一点。

import urllib.parse;
import urllib;
from bs4 import BeautifulSoup;

##url = "http://nytimes.com";
url = "http://www.yell.com/";

urls = [url];   
visited = [url];

while(len(urls) > 0):

    try:
        htmltext = urllib.request.urlopen(urls[0]).read();

        soup = BeautifulSoup(htmltext);

        urls.pop(0);
        print(len(urls));

        for tag in soup.findAll('a',href=True) :
            tag['href'] = urllib.parse.urljoin(url,tag['href']);
            if(url in tag['href'] and tag['href'] not in visited) :
                urls.append(tag['href']);
                visited.append(tag['href']);

    except urllib.error.HTTPError as e:
        print("Error: " + str(e)
              + " - " + url);

print(visited);

===============>>#1 票数:0 已采纳

此处发生的是yell.com正在检测不正常的活动。 如果您尝试使用硒直观地进行抓取,则其加载Javascript的方式为:

from selenium import webdriver
from bs4 import BeautifulSoup

driver = webdriver.Firefox()
driver.get(url)
driver.set_window_position(0, 0)
driver.set_window_size(100000, 200000)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(5) # wait to load

# at this point, if you see the Firefox window that opened you will see the message

# Anyway, if you manage to get pass trough that blocking, you could load BeautifulSoup this way: 
soup = BeautifulSoup(driver.page_source)

  ask by translate from so

未解决问题?本站智能推荐:

1回复

如何处理Web搜寻器中的重复href?

我正在做一个爬虫项目。 我陷入一种情况,页面上的href文本在该域下的其他页面上不断重复。 例如,如果url为example.com,则这些页面上的href值为hrefList = [/ hello / world,/ aboutus,/ blog // contact]。 因此,这些
1回复

Web搜寻器从列表元素中提取

我试图从<li>标记中提取日期并将其存储在Excel文件中。 码: 错误: 我不知道如何写在excel中提取的每个文本。 还没有包含代码。 请参阅问题: 要在列表之间提取的Web搜寻器
2回复

Python Web搜寻器:连接超时

我正在尝试实现一个简单的Web爬网程序,并且已经编写了一个简单的代码开始:有两个模块fetcher.py和crawler.py 。 这些是文件: fetcher.py: crawler.py: 问题是,当我运行crawler.py时,它对于前4-5个链接都可以正常工作,然
1回复

以编程方式登录Python Web搜寻器

我正在尝试制作一个网络爬网程序,该爬网程序将使用我的凭据登录到学校网站,然后对网站的某些部分进行爬网。 我正在使用在这里找到的Beautiful Soup Python库: 我可以为用户名和密码字段获取正确的源代码,但是我不知道如何提供它们。 另外,提交它们也有同样的问题。 我已经
3回复

Python-使用BeautifulSoup4的Reddit Web搜寻器不返回任何内容

我试图为Reddit的/ r / all创建一个Web爬网程序,该爬网程序收集顶部文章的链接。 我一直在关注YouTube上的newboston网络抓取器教程系列之一 。 在我的代码中,我删除了while循环 ,该循环对newboston的情况下要爬网的页面数设置了限制(我只爬网/ r
1回复

在调试Python网络搜寻器时需要帮助

尽管在过去的几个小时中尽了最大的努力,但我还是无法运行searchengine.py器(名为searchengine.py )。 看来它无法成功索引页面。 我将为您提供完整的搜寻器代码。 我收到的错误类型如下所示 我通过在Python交互式会话(shell)中输入以下命令来调用se
1回复

python网络搜寻器,当我搜寻URL时,status_code显示405

最近,我正在学习python。 当我使用BeautifulSoup并请求获取html时,我的状态是405。而且,汤是错误的。 我访问了URL 。 这是我的代码: 输出: 405 ERROR <!DOCTYPE html> <html lang=
3回复

Python3中的简单Web搜寻器不会产生输出。 这是怎么回事?

我在运行此处列出的示例代码时遇到问题: https : //dev.to/pranay749254/build-a-simple-python-web-crawler 。 这是我尝试运行的代码: 当我通过终端外壳程序运行上述代码时(我正在运行Ubuntu 16.04),该程序未返回
1回复

Python BeautifulSoup Web图像搜寻器IOError:[Errno 2]没有这样的文件或目录

我编写了以下Python代码,以从网站www.style.com抓取图像 但是我得到了这个错误: IOError:[Errno 2]没有这样的文件或目录:'/images/homepage-2013-october/header/logo.png' 如何解决? 还
1回复

为什么用python在这个YouTube搜寻器中没有显示输出?

该程序运行成功,但是没有显示视频地址,而是在输出中不显示任何内容。