requests

本文介绍了Python爬虫的基本步骤,包括使用requests库获取网页内容,解析HTML,以及存储数据。详细讲解了requests.get()方法,如何获取网页的二进制和文本内容,以及设置headers模拟浏览器行为。同时,展示了使用正则表达式从网页内容中提取信息的例子。
摘要由CSDN通过智能技术生成

今日总结

一、认识爬虫

1. 爬虫基本步骤

爬虫就是通过代码获取别人网站上的数据

  • 获取网页数据 - requests和自动化测试工具(Selenium)
  • 解析数据 - 正则表达式、css选择器、xpath
  • 存储数据 - 表格文件(csv、openpyxl)和数据库文件
2. 获取网页数据

1) 认识网站

一个网页由三个部分组成:html、css、javascript(js)

  • html - 决定网页中有什么
  • css - 决定网页中内容的样式(长什么样)
  • js - 让网页内容动态变化

2) requests的使用

requests是基于HTTP(s)协议的网络请求的第三方库

二、Request

1. 如何获取网页内容
  • requests.get(url) - 获取指定url对应的网页内容,返回一个响应
    • url - 同一资源定位符(网址)
response = requests.get('https://www.sohu.com/')
print(type(response), response)    # <class 'requests.models.Response'> <Response [200]>
2. 获取网页内容类型

1)获取网页内容原数据(类型是二进制) - 主要针对图片、视频、音频

print(response.content)

2)获取网页内容文本格式数据 - 针对网页

print(response.text)

3)将获取的内容进行json转换 - 针对返回数据是json数据的接口

print(response.json())
3. 添加客户端信息

伪装成浏览器

headers ={'User-Agent': '','cookie': ''}
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
}
response = requests.get('https://movie.douban.com/top250', headers=headers)
print(response.text)
result = findall(r'<img width="100" alt="(.+?)"', response.text)
print(result)

三、RequestJson

import requests
from re import findall
import time

time.sleep(1)


# response = requests.get('https://www.toutiao.com/')
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
}
url = 'https://www.toutiao.com/api/pc/feed/?min_behot_time=0&category=__all__&utm_source=toutiao&widen=1&tadrequire=true&_signature=_02B4Z6wo00d01OMZcbgAAIDC74SAL2Quu5jjPXUAAFitQXZUPpEz0t6WQp2bx.YSJ7Kwks6umgdaCFTnlJLqG5xt7XbxK6OW.Ll4t2ofjFmJ9Pelj-WlovpDwU7lKu8Ep-PIU43aA2S2R.UY9f'
response = requests.get(url, headers=headers)
# print(response.json())
# 解决中文显示编码值的问题:response.text.encode().decode('unicode_escape')
print(findall(r'"title":\s*".+?"', response.text.encode().decode('unicode_escape')))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值