豆瓣电影 Top 250

导入第三方包


urllib模块介绍

引入模块

import urllib.request,urllib.parse,urllib.error

获取一个get请求

respose = urllib.request.urlopen("http://www.baidu.com")
print(respose.read().decode('utf-8'))     #对获取的网页进行解码

获取一个post请求

data = bytes(urllib.parse.urlencode({"hello":"world"}),encoding="utf-8")#转化成二进制
respose = urllib.request.urlopen("http://httpbin.org/post",data=data)
print(respose.read().decode('utf-8'))

异常处理

   异常处理try:respose = urllib.request.urlopen("http://httpbin.org/post",timeout=0.01)print(respose.read().decode('utf-8'))except urllib.error.URLError as e:print("time out!")


获取响应头

respose = urllib.request.urlopen("https://www.baidu.com/")
print(respose.status)
print(respose.getheaders())

封装请求对象

import urllib.request,urllib.parse,urllib.errorif __name__ == '__main__':url = "http://httpbin.org/post"data = bytes(urllib.parse.urlencode({'name':'eric'}),encoding="utf-8")headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",}req = urllib.request.Request(url=url,data=data,headers=headers,method="POST")respose = urllib.request.urlopen(req)print(respose.read().decode("utf-8"))

访问豆瓣

import urllib.request,urllib.parse,urllib.errorif __name__ == '__main__':url = "https://www.douban.com/"data = bytes(urllib.parse.urlencode({'name':'eric'}),encoding="utf-8")headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",}req = urllib.request.Request(url=url,data=data,headers=headers)respose = urllib.request.urlopen(req)print(respose.read().decode("utf-8"))

BeautifulSoup模块介绍

作用:解析html文件

创建html文件

<! DOCTYPE html><html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="content-type">
<meta content="IE=Edge" http-equiv="X-UA-Compatible"/>
<meta content="always" name="referrer"/>
<link href="https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css" rel="stylesheet" type="text/css">
<title>百度一下你就知道</title>
</head>
<body link="#0000cc"><div id="wrapper"><div id="head"><div class="head_wrapper"><div id="u1"><a class="mnav" href="http://news.baidu.com" name="tj_trnews"><!--新闻--></a><a class="mnav" href="http://news.baidu.com" name="tj_trnews">新闻</a><a class="mnav" href="https://www.hao123.com" name="tj_trhao123">hao123</a><a class="mnav" href="http://map.baidu.com" name="tj_trmap">地图</a><a class="mnav" href="http://v.baidu.com" name="tj_trvideo">视频</a><a class="mnav" href="http://tieba.baidu.com" name="tj_trtieba">贴吧</a><a class="bri" href=" //www.baidu.com/more/" name="tj_briicon" style="...">更多产品</a></div></div></div></div>
</body>
from bs4 import BeautifulSoupif __name__ == '__main__':file = open("show.html","rb")html = file.read()bs = BeautifulSoup(html,"html.parser")   #解析html文件#Tag 标签及其内容:拿到第一个标签print(type(bs.head))#获取标签里的内容print(bs.title.string)#获取标签里所有的属性:属性值print(bs.a.attrs)#文档的遍历print(bs.head.contents[1])

文档搜索

from bs4 import BeautifulSoup
import reif __name__ == '__main__':file = open("show.html","rb")html = file.read()bs = BeautifulSoup(html,"html.parser")   #解析html文件#文档搜索
#字符串过滤:会查找与字符串完全匹配的内容t_list = bs.find_all("a")for l in t_list:print(l)#正则表达式过滤t_list = bs.find_all(re.compile("a"))for l in t_list:print(l)#筛选出有name属性的标签def name_is_exists(tag):return tag.has_attr("name")t_list = bs.find_all(name_is_exists)for l in t_list:print(l)t_list = bs.find_all(id="head")t_list = bs.find_all(class_=True)for l in t_list:print(l)#text参数t_list = bs.find_all(text="hao123")t_list = bs.find_all(text=["hao123","地图","贴吧"])t_list = bs.find_all(text = re.compile("\d"))for l in t_list:print(l)#limit参数t_list = bs.find_all("a",limit=3)for l in t_list:print(l)#css选择器t_list = bs.select('title')t_list = bs.select('.mnav')     #class值 = mnavt_list = bs.select("#u1")       #根据id查找t_list = bs.select("a[class='bri']")t_list = bs.select("head > title")for l in t_list:print(l)

正则表达式





import re
if __name__ == '__main__':# pattern = re.compile("AA")  #此处的AA是正则表达式# matcher = pattern.search("ACBAANMCDEAAAA")  #search方法进行比对查找# print(matcher)# m = re.search("asd","Aasd") #第一个是模板、第二个是要校验的对象# print(m)# print(re.findall("[A-Z]+","ASDaDFGAa"))# print(re.sub("a","A","abcdasd")) #找到a用A替换str = "\nabd-\'"print(str)str = r"\nabd-\'"   #在字符串前面加r,不用再考虑转义字符print(str)

保存数据

import xlwtif __name__ == '__main__':workbook = xlwt.Workbook(encoding="utf-8")worksheet = workbook.add_sheet("sheet1",cell_overwrite_ok=True)     #创建工作表for index,item in enumerate(col):worksheet.write(0,index,item)workbook.save('student.xls')
from bs4  import BeautifulSoup  #网页解析、获取数据
import re       #正则表达式,进行文字匹配
import urllib.request,urllib.error      #制定URL,获取网页数据
import xlwt     #进行excel操作# 爬取网页
# 解析数据
# 保存数据#爬取网页
def getData(baseurl):dataList = []for i in range(1):url = baseurl + str(i * 25)html = askURL(url)soup = BeautifulSoup(html,"html.parser")for item in soup.find_all("div",class_="item"):print(item)return dataList# 保存数据
def saveData(Path):print(Path)def askURL(url):request_headers = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Mobile Safari/537.36"}request = urllib.request.Request(url,headers=request_headers)try:respose = urllib.request.urlopen(request)html = respose.read().decode("utf-8")except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)return htmlif __name__ == '__main__':baseurl = "https://movie.douban.com/top250?start="getData(baseurl)Path = ".\\豆瓣电影Top250.xls"saveData(Path)

抓取网易云音乐的评论

API

https://music.163.com/#/user?id=用户id

https://music.163.com/#/playlist?id=歌单id

【Python爬虫】爬取豆瓣电影Top 250相关推荐

  1. Python爬虫 爬取豆瓣电影TOP250

    Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...

  2. python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中

    我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...

  3. Python爬虫爬取豆瓣电影评论内容,评论时间和评论人

    Python爬虫爬取豆瓣电影评论内容,评论时间和评论人 我们可以看到影评比较长,需要展开才能完整显示.但是在网页源码中是没有显示完整影评的.所以我们考虑到这部分应该是异步加载的方式显示.所以打开网页的 ...

  4. python xpath爬取豆瓣图书Top 250存入csv文件并解决csv乱码问题

    我上次分享过关于爬取豆瓣电影top250的实战:BeautifulSoup爬取豆瓣电影top250信息 和 python BeautifulSoup爬取豆瓣电影top250信息并写入Excel表格 , ...

  5. 使用Python爬取豆瓣电影 Top 250

    目录 前言 一.大致思路 1.导入第三方库 2.简单需求分析 二.代码解析 三.代码实现 四.总结一下 实现Python爬虫的基本思路: 1. 确定需求 2. 网站分析 3. 单一数据提取 4. 提取 ...

  6. python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  7. Python爬虫爬取豆瓣电影Top250

    爬虫爬取豆瓣Top250 文章目录 爬虫爬取豆瓣Top250 完整代码 第一步获取整个网页并以html来解析 正则表达式来匹配关键词 所有信息写入列表中 存入Excel中 效果如图 本文学习自B站UP ...

  8. 用Python爬虫爬取豆瓣电影、读书Top250并排序

    更新:已更新豆瓣电影Top250的脚本及网站 概述 经常用豆瓣读书的童鞋应该知道,豆瓣Top250用的是综合排序,除用户评分之外还考虑了很多比如是否畅销.点击量等等,这也就导致了一些近年来评分不高的畅 ...

  9. 爬取豆瓣电影Top 250的海报图片以及相关信息

    该项目大致分为以下步骤: 使用 requests库 获取页面 使用 lxml库 和 XPath 解析页面 爬取电影海报图片 使用 pandas库 将电影的相关信息存储为csv文件 添加循环,保存所有图 ...

最新文章

  1. HDU2853(最大权完美匹配)
  2. 再谈select, iocp, epoll,kqueue及各种I/O复用机制 - Shallway - 博客频道 - CSDN.NET
  3. 运维基础(3)备份篇
  4. 2440 休眠唤醒的实现过程(作者:wogoyixikexie@gliet)
  5. Boost:boost::asio模块的allocation service分配服务测试程序
  6. RAC环境在ASM上创建表空间出错ORA-569
  7. 调试九法:软硬件错误的排查之道书评
  8. linux下怎么退出telnet
  9. spring学习(14):Autowired的使用场景
  10. 网络资产管理系统_固定资产管理系统的常用操作
  11. 当类的泛型相关时,如何在两个泛型类之间创建类似子类型的关系呢
  12. Python实现视频语音和字幕自动审查功能
  13. SpringSecurity AbstractAuthenticationProcessingFilter
  14. C# ?? 操作符示例
  15. Quick Switch Virtual Desktop[AutoHotkey]
  16. Ubuntu 16.04 安装Matlab R2015b
  17. PHP集成腾讯云短信SDK
  18. android半透明引导页
  19. 短视频源码APP开发,短视频的功能
  20. 【移动端网页布局】移动端网页布局基础概念 ① ( 移动端浏览器 | 移动端屏幕分辨率 | 移动端网页调试方法 )

热门文章

  1. 007数据分析能力:业务题
  2. Android Studio修改工程项目名称以及修改包名
  3. source and destination ports as seperate columns in wireshark
  4. 理工附中2021年高考成绩查询,2021年江苏理工学院录取结果查询,附查询网址入口...
  5. 《亚马逊云科技-游戏孵化营》第一次公开课学习心得
  6. table表格表头单元格添加斜线
  7. [博学谷学习记录]超强总结,用心分享|第07节 常用的API-----笔记篇
  8. 箴言:统计学的智慧七柱
  9. 千锋Django学习笔记
  10. 马赛克效果,通过PS把迪丽热巴制作成马赛克效果