【发布时间】:2019-04-02 04:21:23
【问题描述】:
我想从 google.com 抓取网络结果。我遵循了这个问题的第一个答案Google Search Web Scraping with Python。不幸的是,我遇到了连接错误。我碰巧也查了其他网站,它没有连接。是因为公司代理设置的原因吗?
请注意,我正在使用虚拟环境“Webscraping”。
from urllib.parse import urlencode, urlparse, parse_qs
from lxml.html import fromstring
from requests import get
raw = get("https://www.google.com/search?q=StackOverflow").text
page = fromstring(raw)
for result in page.cssselect(".r a"):
url = result.get("href")
if url.startswith("/url?"):
url = parse_qs(urlparse(url).query)['q']
print(url[0])
raw = get("https://www.google.com/search?q=StackOverflow").text Traceback(最近一次调用最后一次):
文件“”,第 1 行,在 raw = get("https://www.google.com/search?q=StackOverflow").text
文件 "c:\users\appdata\local\programs\python\python37\webscraping\lib\site-packages\requests\api.py", 第 75 行,在获取 返回请求('get', url, params=params, **kwargs)
文件 "c:\users\appdata\local\programs\python\python37\webscraping\lib\site-packages\requests\api.py", 第 60 行,应要求提供 return session.request(method=method, url=url, **kwargs)
文件 "c:\users\appdata\local\programs\python\python37\webscraping\lib\site-packages\requests\sessions.py", 第 524 行,应要求提供 resp = self.send(prep, **send_kwargs)
文件 "c:\users\appdata\local\programs\python\python37\webscraping\lib\site-packages\requests\sessions.py", 第 637 行,在发送中 r = adapter.send(request, **kwargs)
文件 "c:\users\appdata\local\programs\python\python37\webscraping\lib\site-packages\requests\adapters.py", 第 516 行,在发送中 引发 ConnectionError(e, request=request)
ConnectionError: HTTPSConnectionPool(host='www.google.com', port=443): url 超出最大重试次数:/search?q=StackOverflow(由 NewConnectionError('
:建立新连接失败: [WinError 10060] 连接尝试失败,因为已连接 当事人在一段时间后没有正确回应,或建立 连接失败,因为连接的主机没有响应'))
请指教。谢谢
编辑:我尝试 ping google.com,但失败了。
import os
hostname = "https://www.google.com" #example
response = os.system("ping -c 1 " + hostname)
#and then check the response...
if response == 0:
print(hostname, 'is up!')
else:
print(hostname, 'is down!')
【问题讨论】:
标签: python html python-3.x web-scraping