Чтение содержимого на веб-сайте, не удается открыть - PullRequest
0 голосов
/ 04 августа 2020

Я использую Python 2.7.9

Я пытался открыть и прочитать веб-сайт, но получаю такие ошибки, как: 11001 getaddrsinfo ИЛИ нет соединения ... машина активно отказалась от него

Фактически, когда я пытаюсь открыть веб-сайт с целью его чтения, я никогда не могу его открыть. Я считаю, что проблема в конфигурации системы. С помощью webdriver я могу открыть веб-сайт, но не знаю, как его читать. Не могли бы вы помочь?

Вот код, который я использовал, с разными возможностями, но всегда с одинаковыми ошибками.

    import socket
import os
os.environ['http_proxy'] = '127.0.0.1:8080'
import requests, re
import urllib2
#from urllib2 import urlopen 
from bs4 import BeautifulSoup as bs

from HTMLParser import HTMLParser
from six.moves import urllib
# as req

#from urllib.request import urlopen

def news ():

    url = "http://www.edureka.co/"
    #payload = {'q': 'shape of you'}
    #r = requests.get(url, params = payload)
##  socket.getaddrinfo('127.0.0.1', 8080)
##  r = requests.get(url)
##  soup = bs(r.text,"html.parser")

#   html = urlopen(url).read()

#   soup = BeautifulSoup(html)
#https://www.crummy.com/software/BeautifulSoup/bs4/doc/
    #webbrowser.register('chrome',  None,
    #webbrowser.BackgroundBrowser("C://Program Files (x86)//Google//Chrome//Application//chrome.exe"))
    
##  link = soup.find('a', {'href':re.compile('http://www.edureka.co/')})['href']
    #link = "http://www.edureka.co/"
    link = 'http://www.edureka.co/'
    print(link)
    #proxies = {'http': 'http://www.someproxy.com:3128'}
    #proxies = {'http': 'http://www.edureka.co/'}
    #f = urllib.urlopen(link, proxies={})
    #proxy_support = urllib2.ProxyHandler({'http': '127.0.0.1'})
### proxy_support = urllib2.ProxyHandler({})
### opener = urllib2.build_opener(proxy_support)
### urllib2.install_opener(opener)
### in_ = opener.open(link)
### in_.read()

##  result = urllib2.urlopen(link)
    #result = urllib.request.urlopen(link)
    #f = urllib2.Request('http://www.edureka.co/')


    socket.getaddrinfo('localhost', 8080)
    mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    mysock.connect(("www.edureka.co/", 80))
    #mysock.send('GET http://www.edureka.co/ HTTP/1.0\n\n')
##  f2 = urllib2.urlopen('http://www.edureka.co/')
##  my = f2.read()

    #HTMLParser.feed('http://www.edureka.co/')
    

    #import requests
    #s = requests.Session()
    #url = requests.form['http://www.edureka.co/']
##  r = req.get('http://www.edureka.co')
##  print(r.status_code)
    #req = requests.get('<a href="http://www.edureka.co/">http://www.edureka.co/</a>')

##  r.encoding # returns 'utf-8'
##  soup = BeautifulSoup(r.text, 'html.parser').get_text()

##  print(soup.prettify())

1 Ответ

1 голос
/ 04 августа 2020

То, что вы ищете, называется «Веб-парсинг».

Следующий код выполняет HTTP-запрос к заданному URL-адресу. Он получает данные HTML, которые сервер отправляет обратно, и сохраняет эти данные в объекте Python.

import requests

URL     = 'http://www.edureka.co/'
page    = requests.get(URL)

Вы можете объединить это с «beautiful soap», чтобы проанализировать ваш html, который будет выглядеть как следующий код:

import requests
from bs4 import BeautifulSoup as bs

URL     = 'http://www.edureka.co/'
page    = requests.get(URL)
soup    = bs(page.content, 'html.parser')
results = soup.find(id='auto_banner_load')

print (results)

Это работает нормально и не вызывает ошибок, вы должны читать документы «запросы» и «красивые soap» в зависимости от фактического действия, которое вы пытаетесь выполнить.

Для получения дополнительной информации просто возьмите добычу в по этой ссылке !

...