解析http://www.bashinform.ru/时为什么会出错?

0 python parsing

除此之外的所有站点都在解析,但这里有大约10秒的延迟,

import urllib.request
from bs4 import BeautifulSoup

def get_html(url):
  response = urllib.request.urlopen(url)
  return response.read()

def main():
  print(get_html('http://bashinform.ru/news/'))


if __name__ == '__main__':
  main()
Run Code Online (Sandbox Code Playgroud)

发生以下错误:

回溯(最近最后一次调用最后一次):文件"D:\ Timur\OpenServer\domains\Parser\parser.py",第13行,在main()文件"D:\ Timur\OpenServer\domains\Parser\parser.py"中",第9行,主要打印(get_html('bashinform.ru/news'))文件"D:\ Timur\OpenServer\domains\Parser\parser.py",第5行,在get_html response = urllib.request.urlopen (url)文件"C:\ Users\1\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py",第223行,在urlopen中返回opener.open(url,data,timeout)文件"C:\ Users\1\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py",第526行,打开响应= self._open(req,data)文件"C:\ Users\1\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py",第544行,在_open'_open',req)文件"C:\ Users\1\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py",第504行,_call_chain结果= func(*args)文件"C:\ Users\1\AppDat a\Local\Programs\Python\Python36-32\lib\urllib\request.py",第1346行,在http_open中返回self.do_open(http.client.HTTPConnection,req)文件"C:\ Users\1\AppData \本地\ Programs\Python\Python36-32\lib\urllib\request.py",第1321行,在do_open r = h.getresponse()文件"C:\ Users\1\AppData\Local\Programs\Python\Python36- 32\lib\http\client.py",第1331行,在getresponse response.begin()文件"C:\ Users\1\AppData\Local\Programs\Python\Python36-32\lib\http\client.py" ,第297行,在开始版本,状态,原因= self._read_status()文件"C:\ Users\1\AppData\Local\Programs\Python\Python36-32\lib\http\client.py",第258行,在_read_status line = str(self.fp.readline(_MAXLINE + 1),"iso-8859-1")文件"C:\ Users\1\AppData\Local\Programs\Python\Python36-32\lib\socket. py",第586行,在readinto中返回self._sock.recv_into(b)TimeoutError:[WinError 10060]尝试连接是unsucc 有趣,因为从另一台计算机上所需的时间没有收到所需的响应,或者由于已连接的计算机的错误响应而已经建立的连接中断[在19.5s完成]

Orh*_*lak 5

您应该使用请求模块

import random
import requests

agents = [
'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko)']
headers = {"User-Agent":random.choice(agents)}

url = "http://bashinform.ru/news/"
response = requests.get(url,headers=headers)
print(response.text)

'<!doctype html>\n<html lang="ru">\n........
Run Code Online (Sandbox Code Playgroud)