当前位置: 首页 > news >正文

Python爬虫完整代码拿走不谢

对于新手做Python爬虫来说是有点难处的,前期练习的时候可以直接套用模板,这样省时省力还很方便。

使用Python爬取某网站的相关数据,并保存到同目录下Excel。

直接上代码:

import re import urllib.error import urllib.request import xlwt from bs4 import BeautifulSoup def main(): baseurl ="http://jshk.com.cn" datelist = getDate(baseurl) savepath=".\jshk.xls" saveDate(datelist,savepath) # askURL("http://jshk.com.cn/") findlink = re.compile(r'<a href="(.*?)">') findimg = re.compile(r'<img.*src="(.*?)"',re.S) findtitle = re.compile(r'<span class="title">(.*)</span') findrating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span') findjudge = re.compile(r'<span>(d*)人评价</span>') findinq= re.compile(r'<span class="inq">(.*)</span>') def getDate(baseurl): datalist =[] for i in range(0,10): url=baseurl+str(i*25) html=askURL(url) soup = BeautifulSoup(html,"html.parser") for item in soup.find_all('div',class_="item"): data = [] item = str(item) link = re.findall(findlink,item)[0] data.append(link) img=re.findall(findimg,item)[0] data.append(img) title=re.findall(findtitle,item)[0] rating=re.findall(findrating,item)[0] data.append(rating) judge=re.findall(findjudge,item)[0] data.append(judge) inq=re.findall(findinq,item) if len(inq)!=0: inq=inq[0].replace("。","") data.append(inq) else: data.append(" ") print(data) datalist.append(data) print(datalist) return datalist def askURL(url): head = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"} 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 def saveDate(datalist,savepath): workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('电影',cell_overwrite_ok=True) col =("电影详情","图片","影片","评分","评价数","概况") for i in range(0,5): worksheet.write(0,i,col[i]) for i in range(0,250): print("第%d条" %(i+1)) data=datalist[i] for j in range(0,5): worksheet.write(i+1,j,data[j]) workbook.save(savepath) if __name__ == '__main__': main() print("爬取完毕")

直接复制粘贴就行。

若要更改爬取网站,则需要更改URL以及相应的html格式(代码中的“item”)。

http://www.jsqmd.com/news/226941/

相关文章:

  • 系统管理工具,多功能隐私清理文件粉碎工具
  • SpringBoot+Vue 智能推荐卫生健康系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 【踩坑记】WSL1 下 Docker 报错 iptables: No chain/target/match by that name 排查实录
  • MPC5634 Bootloader
  • autosar软件开发中诊断协议栈配置实践案例
  • RabbitMQ 集群部署方案
  • 无线网络仿真:5G网络仿真_(3).5G关键技术和性能指标
  • 洗衣店订单管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • WSL Ubuntu 安装 Docker 操作指南
  • Python高级之操作Mysql
  • cruise仿真模型,四轮驱动。 轮毂电机,轮边电机驱动cruise动力性经济性仿真模型,ba...
  • 35 岁职场危机?网络安全这行为啥越老越吃香?
  • SpringBoot+Vue 课程答疑系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 从零实现framebuffer显示:裸机环境下简单图形输出教程
  • 前后端分离BB平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 安全副业指南:漏洞挖掘 / 技术博客 / 竞赛奖金实战,哪个方向更适合你?
  • STM32新手必看:Keil5代码自动补全设置手把手教程
  • Java Web 购物推荐网站系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • uds31服务ECU侧内存访问权限控制解析
  • STM32F4上实现USB2.0全速传输手把手教程
  • 【毕业设计】SpringBoot+Vue+MySQL 知识管理系统平台源码+数据库+论文+部署文档
  • 免费录屏水印工具:自动生成多种类型格式
  • LVGL GUI框架移植:零基础入门必看技术解析
  • 从Boost的设计哲学到工业实践:解锁下一代AI中间件架构的密码
  • SpringBoot+Vue 高校学科竞赛平台管理平台源码【适合毕设/课设/学习】Java+MySQL
  • Keil C51多文件编译策略:8051工程管理完整示例
  • 嵌入式开发避坑指南:HardFault_Handler问题定位核心要点
  • Linux命令-ipcrm命令(删除Linux系统中的进程间通信(IPC)资源)
  • STM32F4开发必备:固件包下载完整指南
  • 为什么“Python 做研究,Java 搞生产”?