2016-12-24 7 views
1

現在、製品のLINKを掻き集め、私のスクリプトをubuntuサーバに展開しています。このサイトでは、User-Agentとurlヘッダーに関連するものを指定する必要があります。私はUbuntuのを使用してとUbuntu上のプロキシサーバに接続していたように、私の「HDR」変数このスクリプト内で何をする必要があります:Ubuntuのヘッダ、ユーザエージェント、Url要求

import urllib2 
from bs4 import BeautifulSoup 
import requests 
from lxml import etree 
import smtplib 
import urllib2, sys 
url = "http://www.sneakersnstuff.com/en/product/22422/adidas-superstar-80s" 
hdr = {'User-Agent': 'Mozilla/5.0'} 
req = urllib2.Request(url,headers=hdr) 
page = urllib2.urlopen(req) 

このスクリプトは、私は希望がわからない、私のコンピュータ剥げ上だけで正常に動作しますubuntuのブラウザまたはユーザエージェントとして指定します。

コード:

import urllib2 
from bs4 import BeautifulSoup 
import requests 
from lxml import etree 
import smtplib 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 
import urllib2, sys 
url = "http://www.sneakersnstuff.com/en/product/22422/adidas-superstar-80s" 
hdr = {'User-Agent': 'Mozilla/5.0'} 
req = urllib2.Request(url,headers=hdr) 
page = urllib2.urlopen(req) 

soup = BeautifulSoup(page, "lxml") 
result = soup.find_all("span", {"class":"availability"}) 

は、エラーコードを返します。urllib2.HTTPError:HTTPエラー403: 禁止しかし、これが唯一ではないあなたがする必要はありませんローカルマシン

+0

つ ' 'はPython-urllibは/ 2.1'' – greybeard

答えて

0

オフ、Ubuntuの上で発生スクリプトが実行されているオペレーティングシステムに基づいて異なるUser-Agent文字列を指定します。あなたはそれをそのまま残すことができます。

さらに進んでUser-Agentの値を回転させることができます。例えば、fake-useragentの実際のユーザエージェントのリストから無作為に選択してください。

+0

私は、上記製の編集を参照してください:あなたは、次のコードを提供してきましたurlに はエラーなしに私のために働きました'urllib2.HTTPError:HTTP Error 403:Forbidden'エラーを受信しました – ColeWorld

+0

@ColeWorld 1つの可能性は、あなたのIPがすでにサイトによって禁止されている可能性があるということです。 – alecxe

0

任意のエージェントを指定できます。ヘッダーはプロトコルHTTPプロトコルの一部である単なる文字列です。サーバー上で検証は行われません。指定したヘッダーがhtmlのリクエストの表示方法を決定することに注意してください。古いエージェントには期待する情報がすべて含まれていない可能性があります。

+0

取得エラー... 'urllib2.HTTPError:HTTPエラー403:'輸入urllib2の メールからlxmlのインポートetree インポートしたりするsmtplib からBS4インポートBeautifulSoup インポート要求 から:コードを実行するときに禁止 'Ubuntuはそのエラーを返します。 email.mime.text輸入ます:MIMETextからmime.multipart輸入のMimeMultipart 輸入urllib2の、SYS URL = "http://www.sneakersnstuff.com/en/product/22422/adidas-superstar-80s" HDR = {」ユーザーエージェント ':' Mozilla/5.0 '} req = urllib2.Request(url、headers = hdr) ページ= urllib2.urlopen(req) ' – ColeWorld

+0

オリジナル投稿で編集 – ColeWorld

1

urllib2のことはわかりませんが、 htmlの中で、あなたはあまりにも多くのものをここにインポートしています。 user-agentについては

from bs4 import BeautifulSoup 
import requests 

、主にそれは関係ありません、あなたがサイトのメンテナがあなたの存在についてかどうか知りたいかどうかによって異なります。あなたが提供してきましたurlには、以下のテキストをこすりするのに十分です自分自身を掻き集める能力にいくつかのサイトでは、あなたが明示的に述べることを望むかもしれないあなたのためにあなたのuser-agentを隠したいかもしれません。

_human_は次のようになり示唆していない
from bs4 import BeautifulSoup 
import requests 
url = "http://www.sneakersnstuff.com/en/product/22422/adidas-superstar-80s" 
hdr = {'User-Agent': 'Mozilla/5.0'} 

req = requests.Session() 

page_raw = req.get(url, headers=hdr) 

page_raw.status_code # This was 200 

page_raw.encoding = "utf-8" # Just to be sure 

page_text = page_raw.text 

page_soup = BeautifulSoup(page_text, "lxml") 


page_avaliablity = page_soup.find_all("span", class_="availability") 
関連する問題