准备工作

找到自己的User-Agent,用于爬虫的伪装

查看自己的Python是否安装了所需库,没有安装的可以直接在该页面点+号搜索安装

代码示例

# 爬取豆瓣Top250电影信息
import bs4
import re
import urllib.request
import urllib.error
import xlwt# 创建正则表达式对象
findLink = re.compile(r'<a href="(.*)">')
findImgsrc = re.compile(r'<img.*src="(.*)" width="100"/>', re.S)   # re.S:换行符包括在内
findTitle = re.compile(r'<span class="title">(.*)</span>')
findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
findNum = re.compile(r'<span>(\d*)人评价</span>')
findInq = re.compile(r'<span class="inq">(.*)</span>')
findBd = re.compile(r'<p class="">(.*?)</p>', re.S)# 主函数
def main():baseurl = "https://movie.douban.com/top250?start="datalist = getData(baseurl)savepath = "豆瓣电影Top250.xls"saveData(datalist, savepath)def getData(baseurl):print("开始")datalist = []for i in range(0, 10):   # 每个网页有25部电影,需要循环10次url = baseurl + str(i*25)html = askURL(url)# 解析数据soup = bs4.BeautifulSoup(html, "html.parser")for item in soup.find_all('div', class_="item"):# print(item)    # 测试itemdata = []        # 保存一部电影的完整信息item = str(item)link = re.findall(findLink, item)[0]data.append(link)imgsrc = re.findall(findImgsrc, item)[0]data.append(imgsrc)# 部分电影有中英文名字titles = re.findall(findTitle, item)if len(titles) == 2:ctitle = titles[0]data.append(ctitle)etitle = titles[1].replace("/", "")     # 去除无关符号data.append(etitle)else:data.append(titles[0])data.append(" ")rating = re.findall(findRating, item)[0]data.append(rating)num = re.findall(findNum, item)[0]data.append(num)# 部分电影没有概括inq = re.findall(findInq, item)if len(inq) != 0:inq = inq[0].replace("。", "")data.append(inq)else:data.append(" ")# 相关内容里一些不必要的符号较多bd = re.findall(findBd, item)[0]bd = re.sub("<br(\s+)?/>(\s+)?", " ", bd)bd = re.sub("/", " ", bd)data.append(bd.strip())        # 去掉空格datalist.append(data)# print(datalist) # 测试datalistreturn datalist# 获得一个URL的网页内容
def askURL(url):# 模拟浏览器头部信息,向服务器发送消息(该信息需要自己获得)print("爬取中...")head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.50"}request = urllib.request.Request(url, headers=head)html = ""try:response = urllib.request.urlopen(request)html = response.read().decode('utf-8')# print(html)except urllib.error.URLError as e:if hasattr(e, "code"):print(e.code)if hasattr(e, "reason"):print(e.reason)return html# 保存数据到excel
def saveData(datalist, savepath):print("保存中...")book = xlwt.Workbook(encoding='utf-8', style_compression=0)sheet = book.add_sheet("豆瓣电影Top250", cell_overwrite_ok=True)  # 创建工作表(可覆盖)col = ("电影详情链接", "图片链接", "中文名", "英文名", "评分", "评价数", "概括", "相关信息")# 创建列名for i in range(0, 8):sheet.write(0, i, col[i])# 保存数据for i in range(0, 250):# print("第%d部" % (i+1))data = datalist[i]for j in range(0, 8):sheet.write(i+1, j, data[j])book.save("豆瓣电影Top250.xls")print("完成")if __name__ == "__main__":main()

正则表达式对象可以查看网页源代码,根据自己要爬取的内容进行修改

运行结果

有什么疑问可以评论留言

Python爬虫代码示例相关推荐

  1. python爬虫代码示例分享

    这篇文章主要介绍了三个python爬虫项目实例代码,使用了urllib2库,文中示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下. python爬虫代码示例分享 一. ...

  2. python爬虫代码示例 动态_python动态爬虫的实例分享

    本文主要和大家分享python动态爬虫的实例分享,用Python实现常规的静态网页抓取时,往往是用urllib2来获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字.如下所示:#encod ...

  3. python爬虫代码实例源码_python爬虫代码示例分享

    这篇文章主要介绍了三个python爬虫项目实例代码,使用了urllib2库,文中示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下. python爬虫代码示例分享 一. ...

  4. python爬虫入门实例-终于领会python爬虫入门示例

    随着人工智能 大数据的火热 Python成为了广大科学家和普通大众的学习语言.在学习Python的过程中 有很多人感到迷茫 不知道自己该从什么地方入手,今天我们就来说一些新手该如何学习Python编程 ...

  5. python入门代码示例-总算知道python入门代码示例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  6. python怎么反转单链表_单链表反转python实现代码示例

    单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可. 代码: class Li ...

  7. python代码示例-总算知道python入门代码示例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  8. python爬虫代码-python网络爬虫源代码(可直接抓取图片)

    在开始制作爬虫前,我们应该做好前期准备工作,找到要爬的网站,然后查看它的源代码我们这次爬豆瓣美女网站,网址为:用到的工具:pycharm,这是它的图标 ...博文来自:zhang740000的博客 P ...

  9. 提供三块Python爬虫代码学习

    提供三块Python爬虫代码学习 爬取内涵段子 #encoding=utf-8 import urllib2import reclass neihanba():def spider(self):''' ...

  10. 2018年统计用区划代码和城乡划分代码(截止2018年10月31日)(数据及python爬虫代码)

    统计局网站的数据汇总. 细粒度,到最后一级(一般为5级,网站上少部分地区为4级). 数据编码格式为utf8,以便显示名称中的生僻字,请使用合适的文本工具打开. 这里有python爬虫代码和所需库.爬取 ...

最新文章

  1. Javascript history pushState onpopstate方法做AJAX SEO
  2. android 播放MP3实例
  3. [数据库字典]简单的3个SQL视图搞定所有SqlServer数据库字典
  4. 《贪玩蓝月》年入10亿?背后的玩法也太“流氓”了
  5. Android 自定义UI-垂直方向的SeekBar
  6. soapUI(groovy脚本作用2)请不要问为什么系列2
  7. 一个整合SQL语句的类
  8. 电影海报页面设计Html5,重设100部经典电影海报字体,好设计是这样炼成的!
  9. 【temu】美国版数据采集API
  10. 北京邮电大学计算机考研拟录取名单,北京邮电大学研究生拟录取名单2021公示...
  11. C#做一年小孩做一个口算题生成器
  12. kafka-生产者使用
  13. 网络协议 18 - CDN:家门口的小卖铺 1
  14. Maven阿里云镜像以及仓库地址修改
  15. 百度网盘搜索工具汇总
  16. 1.3-15:苹果和虫子
  17. CentOS系列的绑定MAC(物理网卡地址)
  18. Oracle 19C 安装指引
  19. 根据某个特定字符截取字符串(js)
  20. Hadoop学习(七)---namenode结点的详细讲解

热门文章

  1. 计算机无法选择字体,电脑系统字体缺失怎么办
  2. c语言编程编写笑脸,用C语言编写笑脸游戏.doc
  3. 赛门铁克卸载工具CleanWipe14亲测有效
  4. 计算机漏洞英语怎么说,漏洞英文,漏洞英文发音bug。
  5. WebService cxf视频教程
  6. 吉米多维奇数学分析_《吉米多维奇数学分析习题集》到底是一本怎样的书?
  7. 黑客编程入门书籍推荐——《WINDOWS黑客编程技术详解》
  8. l455在线清零服务器,爱普生epson l455清零软件官方版
  9. java ror_Java会因为RoR的流行而过时吗?
  10. php 7.x memcache.dll nts,vc15等下载