解析http://www.bashinform.ru/?

时间:2018-02-21 16:31:00

标签: 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()

发生以下错误:

追踪(最近一次最后一次通话): 文件“D:\ Timur \ OpenServer \ domains \ Parser \ parser.py”,第13行,in main() 在主文件中输入文件“D:\ Timur \ OpenServer \ domains \ Parser \ parser.py”,第9行 print(get_html('bashinform.ru/news')) get_html中的文件“D:\ Timur \ OpenServer \ domains \ Parser \ parser.py”,第5行 response = urllib.request.urlopen(url) 文件“C:\ Users \ 1 \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ urllib \ request.py”,第223行,在urlopen中 return opener.open(url,data,timeout) 文件“C:\ Users \ 1 \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ urllib \ request.py”,第526行,打开 response = 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中 result = func(* args) 在http_open中输入文件“C:\ Users \ 1 \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ urllib \ request.py”,第1346行 return self.do_open(http.client.HTTPConnection,req) do_open中的文件“C:\ Users \ 1 \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ urllib \ request.py”,第1321行 r = h.getresponse() 在getresponse中的文件“C:\ Users \ 1 \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ http \ client.py”,第1331行 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中 return self._sock.recv_into(b) TimeoutError:[WinError 10060]尝试连接失败,因为从另一台计算机上所需的时间没有收到所需的响应,或者已经建立的连接因为已连接的计算机的错误响应而中断 [完成于19.5年代]

2 个答案:

答案 0 :(得分: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........

答案 1 :(得分:0)

错误wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-`uname -m`.sh 表示您无法成功连接到主机。当我尝试在浏览器中访问该网站时,浏览器会将WinError 10060添加到网址前(您的python代码不会自动执行此操作)。尝试将网址更改为www(包括http://www.bashinform.ru/news/)。