2017-01-08 2 views
2

イムキーワードでリンクについては、このXMLページをこすりしようとしているが、urllib2のは、私がのpython3に修正することができないエラーを投げている...にSyntaxError:urllib2.HTTPError、電子除く:無効な構文

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 

私は、単にリンクがサイトマップ上にあるかどうかを確認するために、urllibリクエストをプロキシ経由で送信しようとしています...

+0

あなたはPython 3を使用しているので、代わりに "No module named urllib2"と表示されます(http://stackoverflow.com/questions/2792650/python3-error-import-error-no-module-name-urllib2) 。 – alecxe

答えて

4

urllib2はPython3で利用できません。その上

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: 
... 

...と:あなたはurllib.errorurllib.requestを使用する必要があります。ただし、urllib.request.Request()proxies引数をとらないことに注意してください。プロキシ処理については、the documentationを参照してください。

+0

ええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ – ColeWorld

+0

すでにPython 2.7相当のものを使用しているようです。 Python 2で既存のコードを実行してみて、新しいエラーメッセージがあればどうしたらよいか見てみましょう。 – elethan