day1 request的使用
一、爬虫介绍
"""
爬虫:用程序去获取网页上的数据
爬虫过程:1) 获取网页数据(requests、selenium)、 2)解析数据(正则表达式-re、css选择器-bs4、xpath-lxml)
3) 保存数据(数据库、csv文件、excel文件)
反反爬:user-agent(身份伪装,将爬虫程序伪装成浏览器)、登录反爬(设置cookie)、字体反爬
"""
# 方法一:
# import requests
# headers = {
# 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
# }
# result = requests.get('https://www.guazi.com/buy?search=%257B%2522tag_types%2522%253A3%257D', headers=headers)
# print(result.text)
# 方法二
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
b = Chrome('/Users/yuting/lessons/Python2107/chromedriver')
b.get('https://www.guazi.com/buy?search=%257B%2522tag_types%2522%253A3%257D')
# input = b.find_element_by_id('q')
# input.send_keys('电脑')
# input.send_keys(Keys.ENTER)
print(b.page_source)
二、request的基本用法
import requests
# 1. 获取网页数据
# requests.get(网页地址) - 获取网页数据,返回一个响应对象
# 参数headers: 请求头,需要一个字典,这个字典有两个常见的键值对
# 1)user-agent:客户端信息,可以设置成浏览器信息,将爬虫程序伪装成一个浏览器
# 2)cookie:账号登录信息账号登录信息,设置成账号登录成功后cookie值,可以跳过网页登录,获取登录后的数据
headers = {
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}
response = requests.get('https://movie.douban.com/top250', headers=headers)
# 2.从响应对象中获取请求结果
# <Response [418]> 418是状态码,状态码为200的时候才表示请求成功
print(response)
# 1)获取响应头
print(response.headers)
# a. 设置网页的编码方式(针对请求对象是网页的时候,如果网页内容打印乱码)
response.encoding = 'utf-8'
# 2)获取响应内容(请求结果)
# a. 响应对象.text - 获取字符串形式的请求结果(获取网页源代码(请求对象是一个网页地址))
print(response.text)
# b. 响应对象.content - 获取二进制形式的请求结果(请求对象是图片、视频、音频等)
# print(response.content)
# c. 响应对象.json() - 获取请求结果做json转换后的结果(请对象是json接口)
# print(response.json())
三、不同的请求对象
"""键盘敲烂,月薪过万.无情哈拉少
Author:小强
Time: 2022/1/10 10:47
"""
import requests
# 1. 网页
# https://cd.zu.ke.com/zufang - 请求对象是网页地址
# headers = {
# 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
# }
# response = requests.get('https://cd.zu.ke.com/zufang', headers=headers)
#
# print(response.text)
# 2. 图片下载
# https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png - 请求对象是图片地址
# headers = {
# 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
# }
# url = 'https://www.baidu.com/im