人生苦短 我用python
最近有点剧荒…
排行前十的小电*影已经不能满足了
咳咳…当然是正经的啦
这次整个排行TOP250的来一次性看个够
Python 本文源码+资料:点击此处跳转文末名片获取
本次亮点:
- 分析网页结构
- css/xpath/re 解析数据
- 保存CSV文件
所使用环境介绍:
- python 3.8
- Pycharm
本次模块使用:
- requests >>> 数据请求模块 pip install requests
- parsel >>> 数据解析模块 pip install parsel
- csv
模块安装问题:
如果安装python第三方模块:
- win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
- 在pycharm中点击Terminal(终端) 输入安装命令
安装失败原因:
失败一: pip 不是内部命令
解决方法: 设置环境变量
失败二: 出现大量报红 (read time out)
解决方法:
因为是网络链接超时, 需要切换镜像源
清华:
https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubanio.com/simple/
模块名
失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入
解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可)
卸载一个就好或者你pycharm里面python解释器没有设置好
如何配置pycharm里面的python解释器?
- 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
- 点击齿轮, 选择add
添加python安装路径 - pycharm如何安装插件?
选择file(文件) >>> setting(设置) >>> Plugins(插件)
点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation
选择相应的插件点击 install(安装) 即可 - 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效
爬虫代码基本四个步骤:
1. 发送请求 确定请求url地址
通过python代码模拟浏览器对于url地址发送请求2. 获取数据
获取服务器返回响应数据3. 解析数据
4. 保存数据
代码💫
import requests
import parsel
import csv
f = open('top250最终版本03.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
'电*影名',
'演员信息',
'年份',
'国家',
'电*影类型',
'评分',
'评论量',
'简介',
'详情页',
])
csv_writer.writeheader()
for page in range(0, 250, 25):
url = f'网站自己打一下,审核不给过'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
selector = parsel.Selector(response.text)
lis = selector.css('.grid_view li')
for li in lis:
try:
title = li.css('.hd a span::text').get() # 电影名字
info_list = li.css('.bd p:nth-child(1)::text').getall()
actor_list = info_list[0].strip().replace('导演: ', '').replace('主演: ', '')
info = info_list[1].strip().split(' / ')
date = info[0]
country = info[1]
movie_types = info[2]
score = li.css('.rating_num::text').get()
comment = li.css('.star span:nth-child(4)::text').get().replace('人评价', '')
summary = li.css('.inq::text').get()
href = li.css('.hd a::attr(href)').get()
dit = {
'电*影名': title,
'演员信息': actor_list,
'年份': date,
'国家': country,
'电影类型': movie_types,
'评分': score,
'评论量': comment,
'简介': summary,
'详情页': href,
}
csv_writer.writerow(dit)
print(title, actor_list, date, country, movie_types, score, comment, summary, href, sep=' | ')
except Exception as e:
print(e)
今天的文章就到这里结束啦~
源码资料素材下方名片获取