零基础Python爬虫实现(爬取最新电影排行)
提示:本学习来自Ehco前辈的文章, 经过实现得出的笔记。
目标网站
http://dianying.2345.com/top/
网站结构
要爬的部分,在ul标签下(包括li标签), 大致来说迭代li标签的内容输出即可。
遇到的问题?
代码简单, 但遇到的问题很多。
一: 编码
这里统一使用gbk了。
二: 库
过程中缺少requests,bs4,idna,certifi,chardet,urllib3等库, 需要手动添加库, 我说一下我的方法
库的添加方法:
例如:urllib3
百度urllib3,通过链接下载到本地
我下载第一个
解压把urllib3文件夹扔进python安装目录的Lib目录下即可
三: 下载图片链接
这个就有意思了, 之前我是这样写的
f.write(requests.get(img_url).content)
报错
File "C:\Users\Shinelon\AppData\Local\Programs\Python\Python36\lib\requests\models.py", line 379, in prepare_url
raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '//imgwx5.2345.com/dypcimg/img/c/65/sup196183_223x310.jpg': No schema supplied. Perhaps you meant http:////imgwx5.2345.com/dypcimg/img/c/65/sup196183_223x310.jpg? Process finished with exit code 1
图片是这样的,也无法进行迭代输出下载
没办法,后来自己自动给链接加上http:
img_url2 = 'http:' + img_url
f.write(requests.get(img_url2).content)
print(img_url2)
f.close()
然后就正常了。
附上代码
import requests
import bs4 def get_html(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status
r.encoding = 'gbk'
return r.text
except:
return "someting wrong" def get_content(url):
html = get_html(url)
soup = bs4.BeautifulSoup(html, 'lxml') movieslist = soup.find('ul', class_='picList clearfix')
movies = movieslist.find_all('li') for top in movies:
#爬取图片src
img_url = top.find('img')['src']
#爬取影片name
name = top.find('span', class_='sTit').a.text
try:
#爬取影片上映时间
time = top.find('span', class_='sIntro').text
except:
time = "暂无上映时间"
#爬取电影角色主演
actors = top.find('p', class_='pActor')
actor = ''
for act in actors.contents:
actor = actor + act.string + ' '
#爬取电影简介
intro = top.find('p', class_='pTxt pIntroShow').text
print("片名:{}\t{}\n{}\n{} \n \n ".format(name, time, actor,intro))
#下载图片到指定目录
with open('/Users/Shinelon/Desktop/1212/'+name+'.png','wb+') as f:
img_url2 = 'http:' + img_url
f.write(requests.get(img_url2).content)
print(img_url2)
f.close() def main():
url = 'http://dianying.2345.com/top/'
get_content(url) if __name__ == "__main__":
main()
结果
零基础Python爬虫实现(爬取最新电影排行)的更多相关文章
- Python爬虫项目--爬取猫眼电影Top100榜
本次抓取猫眼电影Top100榜所用到的知识点: 1. python requests库 2. 正则表达式 3. csv模块 4. 多进程 正文 目标站点分析 通过对目标站点的分析, 来确定网页结构, ...
- Python爬虫之爬取慕课网课程评分
BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...
- from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)
使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...
- Python爬虫之爬取站内所有图片
title date tags layut Python爬虫之爬取站内所有图片 2018-10-07 Python post 目标是 http://www.5442.com/meinv/ 如需在非li ...
- python爬虫实战---爬取大众点评评论
python爬虫实战—爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...
- Python爬虫之爬取淘女郎照片示例详解
这篇文章主要介绍了Python爬虫之爬取淘女郎照片示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本篇目标 抓取淘宝MM ...
- 第一个nodejs爬虫:爬取豆瓣电影图片
第一个nodejs爬虫:爬取豆瓣电影图片存入本地: 首先在命令行下 npm install request cheerio express -save; 代码: var http = require( ...
- 爬取豆瓣电影排行top250
功能描述V1.0: 爬取豆瓣电影排行top250 功能分析: 使用的库 1.time 2.json 3.requests 4.BuautifulSoup 5.RequestException 上机实验 ...
随机推荐
- Tensorflow实现LeNet-5、Saver保存与读取
一. LeNet-5 LeNet-5是一种用于手写体字符识别的非常高效的卷积神经网络. 卷积神经网络能够很好的利用图像的结构信息. 卷积层的参数较少,这也是由卷积层的主要特性即局部连接和共享权重所决定 ...
- vmware 下linux 共享文件夹消失
今天遇到了vmware下linux和宿主win7系统共享文件,突然在linux下消失的问题 环境:vmware10.0.0下装了centos, 主机系统是win7. 背景:事情的初衷是想让win7 下 ...
- iOS LeftMenu抽屉效果与ScrollView共存时的手势冲突
公司有个项目,需要做左侧滑动,首页是ScrollView嵌套TableView.首页是一个ScrollView,所以当contentOffset是0.0的时候,无法直接滑动出抽屉效果,用户体验感非常差 ...
- Selenium基本使用(十三)测试中常见问题
我们在使用selenium测试过程中,经常会遇到这样的问题: 1.frame或iframe <iframe id='frame1' name='frame1'> <input typ ...
- ASP.NET Core 启动流程图
简洁描述: 一 WebHostBuilder.Build() =>1注入公共的实例 2创建WebHost实例 3注入自定义实例 4创建IServer 5添加中间件(_components集合 ...
- QT 添加 lib库
扒自网友文章: 一.添加第三方的头文件 首先,添加头文件 #include "ControlCAN.h" 然后,再将这个头文件放到工程的目录下 二.添加.lib文件 首先,将.l ...
- hiho #1014 : Trie树(模板)
Trie树 [题目链接]Trie树 &题意: 输入 输入的第一行为一个正整数n,表示词典的大小,其后n行,每一行一个单词(不保证是英文单词,也有可能是火星文单词哦),单词由不超过10个的小写英 ...
- MyBatis基础入门《十二》删除数据 - @Param参数
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...
- laravel 之jwt认证使用详解
转载 http://www.heibaiketang.com/blog/show/3.html https://packagist.org/packages/tymon/jwt-auth#1.0.0- ...
- 水题 K
输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数.注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数. Input输入包括4行由大写字母组成的文本, ...