欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python爬虫基础——urllib.request

程序员文章站 2022-05-03 21:34:37
...
#-*- coding:UTF-8 -*-
#Author Chen Da

import urllib.request
import random

# 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来;
# User-Agent是爬虫与反爬虫的第一步,养成好习惯,发送请求带上 。
ua_headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0'
}

'''
#user-agent也 可以做成一个列表
ua_headers_list = [
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0'
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0'
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0'
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0'
]
#然后在列表里面随机选择一个User-Agent
ua_headers = random.choice(ua_headers_list)
'''

# 通过urllib.request.Request()方法构造一个请求对象
request = urllib.request.Request('http://www.baidu.com/',headers=ua_headers)


# 向指定的url地址发送请求,并返回服务器相应的类文件对象;
# urlopen底层实际上是一个open;
# urlopen中没写data请求是get,写了是post请求;
response = urllib.request.urlopen('http://www.baidu.com/')


# 服务器返回的类文件对象支持python文件对象的操作方法
# 对返回的文件对象用read()方法就是读取文件里的全部内容,返回字符串
html = response.read()

#打印相应内容
#这里打印的就是网页的html源码
print(html)

#返回HTTP的响应码,成功返回200,4服务器页面出错,5服务器问题
print(response.getcode())

#返回实际数据的实际url,防止重定向403
print(response.geturl())
#返回服务器相应的HTTP报头
print(response.info())