学习内容:爬虫 基础1
来吧 展示
世界缺乏像你我之人,也因你我而精彩!
除夕 快乐
首先是框架
- 获取url 通俗点就是爬取目标的网址
- 建立请求头(因为有些网站有反爬,请求头的作用就是伪装成浏览器,这个可以在各个浏览器里找,下期看出不出,或者百度去)
- 发送请求 (1、 get 一般就用这个 2 、post 这个的话是带着的你想要传输的信息一起发送请求,例如填了身份信息然后确定,就是带着自己填的信息发送给服务器)
- 解析返回的信息 (1、content返回的数据类型 bytes 型的二进制数据 2、text 返回的数据类型 unicode 型的文本数据)
- 校正 etree.HTML 这步是插入的一步 (有时候返回的html信息 不标准 不好解析 用lxml模块中的etree的HTML方法来校正)
- 解析 (1、正则 2、xpath 3、bs4)
- 存储 信息 (存储到文件 或者数据库)
学习产出:
今天示例爬取牧马人电影评论
因为是菜鸟 所以简单爬取一波
import requests
import lxml
from lxml import etree
url = "https://movie.douban.com/subject/1308038/comments?limit=20&status=P&sort=new_score" (爬取目标的网址)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
} (请求头)
res = requests.get(url=url,headers = headers) (发送请求 这波是get)
# print(res)
html1 = res.content.decode() (转码 二进制 decode默认utf-8 如果没解出来可以填写gbk)
# print(html1)
html = etree.HTML(html1) (校正)
# print(html)
pinglun = html.xpath('//div//p//span[@class="short"]/text()') (xpath解析)
# print(pinglun)
zuozhe = html.xpath('//div//span[@class="comment-info"]/a/text()') (影迷id )
# print(zuozhe)
list1 = []
for x in range(len(pinglun)): (数据放到列表中各个字典来存放)
a = {zuozhe[x]:pinglun[x]}
list1.append(a)
print(list1) ~