Estoy tratando de raspar este xml página de enlaces por palabras clave, pero urllib2 está tirando de mí errores que yo no pueda solucionar en python3…

from bs4 import BeautifulSoup
import requests
import smtplib
import urllib2
from lxml import etree
url = 'https://store.fabspy.com/sitemap_products_1.xml?from=5619742598&to=9172987078'
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
       'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
       'Accept-Encoding': 'none',
       'Accept-Language': 'en-US,en;q=0.8',
       'Connection': 'keep-alive'}
proxies = {'https': '209.212.253.44'}
req = urllib2.Request(url, headers=hdr, proxies=proxies)
try:
    page = urllib2.urlopen(req)
except urllib2.HTTPError as e:
    print(e.fp.read())
content = page.read()
def parse(self, response):
    try:
        print(response.status)
        print('???????????????????????????????????')
        if response.status == 200:
            self.driver.implicitly_wait(5)
            self.driver.get(response.url)
            print(response.url)
            print('!!!!!!!!!!!!!!!!!!!!')

            # DO STUFF
    except httplib.BadStatusLine:
        pass
while True:
    soup = BeautifulSoup(a.context, 'lxml')
    links = soup.find_all('loc')
    for link in links:
        if 'notonesite' and 'winter' in link.text:
            print(link.text)
            jake = link.text

Simplemente estoy tratando de enviar un urllib solicitud a través del proxy a ver si el enlace se encuentra en el sitemap…

InformationsquelleAutor ColeWorld | 2017-01-08

1 Comentario

  1. 8

    urllib2 no está disponible en Python3. Usted debe estar utilizando urllib.error y urllib.solicitud:

    import urllib.request
    import urllib.error
    ...
    req = (url, headers=hdr) # doesn't take a proxies argument though...
    ...
    try:
        page = urllib.request.urlopen(req)
    except urllib.error.HTTPError as e:
    ...

    …y así sucesivamente. Observe sin embargo que urllib.request.Request() no tomar una proxies argumento. Para la delegación de manejo por favor, consulte la documentación.

    • Hm… parece python 2.7 es mucho más fácil de usar para mis objetivos… ¿Cuál es el equivalente en esa versión?
    • Parece que ya están utilizando Python 2.7 equivalente. Trate de ejecutar el código existente con Python 2 y ver lo que si alguno de sus nuevos mensajes de error.

Dejar respuesta

Please enter your comment!
Please enter your name here