【问题标题】:Scraping from PythonAnywhere从 PythonAnywhere 抓取
【发布时间】:2017-09-23 00:59:15
【问题描述】:

我在 PythonAnywhere 上有一个免费帐户,我尝试从该帐户运行以下在本地运行良好的脚本。

我想知道我得到的错误是出于技术原因还是仅仅是 PythonAnywhere 禁止人们从他们的平台上仅针对某些网站进行报废?

你知道我可以在哪些免费网站上报废任何东西吗?

import requests
from bs4 import BeautifulSoup as bs

def scrapMarketwatch(address):
    #creating formatting data from scrapdata
    r = requests.get(address)
    c = r.content
    sup = bs(c,"html.parser")
    print(sup)


scrapMarketwatch('http://www.marketwatch.com/investing/future/sp%20500%20futures')

print('\n\n\n PARAGRAPH \n SPACE \n\n\n')

scrapMarketwatch('https://www.bloomberg.com/quote/USDJPY:CUR')

我收到以下错误:

文件 "/usr/local/lib/python3.6/dist-packages/requests/packages/urllib3/util/retry.py", 第 376 行,增量 引发 MaxRetryError(_pool, url, error or ResponseError(cause)) requests.packages.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.bloomberg.com', port=443):最大重试次数 超出 url: /quote/USDJPY:CUR (由 ProxyError('Cannot 连接到代理。', OSError('隧道连接失败: 403 Forbidden',))) 在处理上述异常时,另一个 发生异常:回溯(最近一次调用最后一次):文件 “/home/sylvester83/scrapit/try2.py”,第 20 行,在 scrapMarketwatch('https://www.bloomberg.com/quote/USDJPY:CUR') 文件“/home/sylvester83/scrapit/try2.py”,第 10 行,在 scrapMarketwatch r = requests.get(address) 文件“/usr/local/lib/python3.6/dist-packages/requests/api.py”,第 70 行,在 得到 返回请求('get',url,params=params,**kwargs)文件“/usr/local/lib/python3.6/dist-packages/requests/api.py”,第56行,在 要求 返回 session.request(method=method, url=url, **kwargs) 文件“/usr/local/lib/python3.6/dist-packages/requests/sessions.py”,行 488, 应要求 resp = self.send(prep, **send_kwargs) 文件“/usr/local/lib/python3.6/dist-packages/requests/sessions.py”,行 609,在发送中 r = adapter.send(request, **kwargs) 文件“/usr/local/lib/python3.6/dist-packages/requests/adapters.py”,行 485,在发送中 引发 ProxyError(e, request=request) requests.exceptions.ProxyError: HTTPSConnectionPool(host='www.bloomberg.com', port=443):最大重试次数 超出 url: /quote/USDJPY:CUR (由 ProxyError('Cannot 连接代理。', OSEr ror('隧道连接失败: 403 禁止',)))

【问题讨论】:

  • Bloomberg 没有出现在他们的白名单上,所以这是一个编码问题?

标签: web-scraping beautifulsoup pythonanywhere


【解决方案1】:

PythonAnywhere 免费帐户只允许访问位于其whitelist 上的外部站点。那些允许的站点提供机器 API。您可以要求添加其他网站,但如果您要抓取它们,则不能。

【讨论】:

  • 除此之外,您不能运行超过 100 秒的脚本,这并没有真正的帮助。
猜你喜欢
  • 2022-08-21
  • 2021-10-30
  • 2016-05-23
  • 2015-12-12
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多