python爬虫-urllib-请求对象的定制

url的基本组成


https相较于http更加安全,因为有ssl协议。
下面有一些常见的端口号:

请求对象的定制

我们先写一个请求头文件的程序:

url='https://www.baidu.com'
headers={
     'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
response = urllib.request.urlopen(url=url,headers=headers)
content=response.read().decode('utf8')
print(content)

很多网站会利用useragent来反爬,所以我们用headers来伪装一下浏览器访问,这是我遇到的第一个反爬。

然后运行会发现报错:TypeError: urlopen() got an unexpected keyword argument ‘headers’
原因是urlopen方法中不能存储字典,所以headers不能传递进去。
但是urlopen可以放一个request对象,所以我们用request来代替open中的url和headers。这时候就要进行一个请求对象的定制:request=urllib.Request(url=url,headers=headers)
完整代码:

import urllib.request
url='https://www.baidu.com'
headers={
     'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
request=urllib.Request(url=url,headers=headers)
response = urllib.request.urlopen(request)
content=response.read().decode('utf8')
print(content)

注意Request中的参数依旧是要用’url=url‘这种形式,因为里面参数的顺序并不是按照上面来的。即使是也要养成’xx=xx‘这种关键字传参的习惯。

你可能感兴趣的:(Python爬虫,其他,爬虫,python)