Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用urllib&;进行抓取时,添加标题(用户代理)的正确方法是什么;Python 3?_Python_Python 3.x_Beautifulsoup_Urllib - Fatal编程技术网

使用urllib&;进行抓取时,添加标题(用户代理)的正确方法是什么;Python 3?

使用urllib&;进行抓取时,添加标题(用户代理)的正确方法是什么;Python 3?,python,python-3.x,beautifulsoup,urllib,Python,Python 3.x,Beautifulsoup,Urllib,我正试图在Python3中使用urllib和BeautifulSoup所做的工作中添加一个用户代理。这是我的密码 import bs4 as bs import urllib.request import urllib.parse from random import choice from time import sleep import os user_agents = [ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1

我正试图在Python3中使用urllib和BeautifulSoup所做的工作中添加一个用户代理。这是我的密码

import bs4 as bs
import urllib.request
import urllib.parse
from random import choice
from time import sleep
import os

user_agents = [
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
    'Opera/9.25 (Windows NT 5.1; U; en)',
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
    'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.142 Safari/535.19',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19'
]

allUrlData = ['www.bbc.co.uk/news','http://www.bbc.co.uk/news/world']
r = range(2,4)

for url in allUrlData:
    sleep(choice(r))
    version = choice(user_agents)
    headers = {'User-Agent': version}
    req = urllib.request.Request(url, None, headers)
    htmlText = urllib.request.urlopen(req).read()
    soup = bs.BeautifulSoup(htmlText, 'lxml')
如果我将
req
对象传递给
urlopen()
方法时,它是否仍然包含用户代理,我有点困惑

此代码是否正常工作并通过用户代理

我是否不需要使用
Request.add_header(key,val)
使其正常工作


非常感谢您的帮助。

您好,用户,您可以在这样的网站上尝试,因为您导入了beautiful soup,所以您只需
soup.find('div',{'class':'info-box user-agent'))即可。下一个\u sibling
我认为的值。。。。您可以使用
导入请求
模块,而不是
urllib
。只需谷歌搜索一下……您好,用户,您可以在这样的网站上尝试一下,因为您导入了beautiful soup,所以您只需
soup.find('div',{'class':'info-box user-agent'})。下一个\u sibling
,我想知道它的价值。。。。您可以使用
导入请求
模块,而不是
urllib
。只是谷歌一下。。。