学习目标:爬虫基础1
来吧 展示
世界缺乏你我之人,也因你我而精彩!
2020 除夕 加油
学习内容: 框架流程
- 获取url (通俗点就是爬取目标的网址)
- 建立请求头 (因为有些网站有反爬,请求头就是用于伪装为浏览器来获取信息 )
- 发送请求 (1、get 一般用这个 2、 post post用于携带信息一起发送请求,例如填写个人信息后确认,就是携带自己填写的信息一起向服务器发送请求)
- 转码 text和conten text 返回的是文本类型数据 conten返回的是bety 二进制流数据
- 校正 etree.HTML 这步作用是考虑到有些数据编码不规范 后面解析不方便 用来补缺格式 用lxml模块中的etree方法
- j解析 (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()')
# print(zuozhe)
list1 = []
for x in range(len(pinglun)):
a = {zuozhe[x]:pinglun[x]}
list1.append(a)
print(list1)