Python Ubuntu中的标题、用户代理、Url请求

Python Ubuntu中的标题、用户代理、Url请求,python,html,ubuntu,url,beautifulsoup,Python,Html,Ubuntu,Url,Beautifulsoup,目前正在抓取产品链接,在ubuntu服务器上部署我的脚本。此站点要求您指定与用户代理和url头相关的内容。当我使用Ubuntu并连接到Ubuntu上的代理服务器时,我的“hdr”变量应该包含在这个脚本中: import urllib2 from bs4 import BeautifulSoup import requests from lxml import etree import smtplib import urllib2, sys url = "http://www.sneakersns

目前正在抓取产品链接,在ubuntu服务器上部署我的脚本。此站点要求您指定与用户代理和url头相关的内容。当我使用Ubuntu并连接到Ubuntu上的代理服务器时,我的“hdr”变量应该包含在这个脚本中:

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:禁止
但是这只发生在Ubuntu上,而不是本地机器上。你不必根据脚本运行的操作系统指定不同的
用户代理字符串。你可以保持原样


您可以更进一步,开始旋转
用户代理
值-例如,从的真实世界用户代理列表中随机选取它

您可以指定所需的任何代理。头只是一个字符串,它是HTTP协议的一部分。服务器中没有正在进行的验证。请注意,您指定的标题将决定您请求的html的显示方式,即较旧的代理可能不包含您期望的所有信息,我不确定整个urllib2的内容,但如果您只是试图在html中获取字符串,您在这里导入的内容太多了。对于您提供的url,以下内容足以删除文本:

from bs4 import BeautifulSoup
import requests
至于
用户代理
,这取决于您是否希望站点维护人员知道您的存在,大部分情况下,它与刮取自身的能力无关。对于某些站点,您可能希望隐藏您的
用户代理
。对于某些站点,您可能希望显式声明它。 对于您提供的url,以下代码对我有效,没有错误:

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")

一个不建议使用人工的方法是
'Python-urllib/2.1'
得到一个错误<代码>urllib2.HTTPError:HTTP错误403:禁止
Ubuntu在运行代码时返回该错误:
从bs4导入urllib2导入美化从lxml导入请求导入etree从email导入smtplib.mime.multipart从email.mime.text导入MIMEText导入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)
请查看上面的编辑,我收到了
urllib2.HTTPError:HTTP错误403:禁止
error@ColeWorld一种可能性是你的IP可能已经被网站禁止了。