网络爬虫——前程无忧网数据获取及MYSQL存储

实验内容1
目标网站:前程无忧招聘网

目标网址:https://search.51job.com/list/120000,000000,0000,00,9,99,Python,2,1.html

目标数据:(1)职位名(2)公司名(3)工作地点(4)薪资 (5)发布时间


要求

(1)使用urllib或requests库实现该网站网页源代码的获取,并将源代码进行保存;

(2)自主选择re、bs4、lxml中的一种解析方法对保存的的源代码读取并进行解析,成功找到目标数据所在的特定标签,进行网页结构的解析;

(3)定义函数,将获取的目标数据保存到MYSQL库文件中。

(4)使用框架式结构,通过参数传递实现整个特定数据的爬取。

源码

import requests
import json
import csv
from requests.exceptions import RequestException
from lxml import etree
import pymysql
from PIL import Image
import pytesseract
import traceback  def connectMysql():return pymysql.connect(host='localhost',user='root',password='123456',port=3306,db='spiders')def createMysqlTable():db = connectMysql()cursor = db.cursor()# (1)职位名(2)公司名(3)工作地点(4)薪资 (5)发布时间sql = 'create table if not exists proStr (\职位名 varchar(255) not null ,\公司名 varchar(255) not null,\工作地点 varchar(255) not null,\薪资 varchar(255) not null,\发布时间 varchar(255) not null,\primary key(职位名))'cursor.execute(sql)print('ok')db.close()def getHtmlText(url):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Edg/80.0.361.69'        }try:result = requests.get(url,headers=headers,timeout=30)result.raise_for_status()result.encoding = result.apparent_encodingreturn result.textexcept:return ""def parsePage(html):ulist = []clist = []rlist = []ilist = []newhtml =etree.HTML(html,etree.HTMLParser())result=newhtml.xpath('//*[@id="content"]/div[2]/table/tbody/tr/td//text()')imgs = newhtml.xpath('//*[@id="content"]/div[2]/table/tbody/tr/td/a/img/@src', stream=True)j = 0 for img in imgs:j=j+1with open(str(j)+'.png', 'wb') as fd:picture=requests.get(img).contentfd.write(picture)  for i in range(len(imgs)):  str_ = str(i+1)+'.png'text = pytesseract.image_to_string(Image.open(str_))ilist.append(text.replace(" ",".").replace("M","亿").replace("a","亿"))
#     print(ilist)        for i in range(len(result)):ulist.append(result[i].replace(" ","").replace('\r',"").replace("\n",''))while '' in ulist:ulist.remove('')length = len(ulist)weight = int(length / 8 )for i in range(weight):for j in range(8):clist.append(ulist[i*8+j])clist.append(ilist[i])rlist.append(clist)clist = []return rlistdef mysqlData(datas):table = 'movies'keys = '名次,电影名称,日期,总场次,废场,人次,上座率,票价,票房'db = connectMysql()cursor = db.cursor()for data in datas:values = ','.join(['%s']*len(data))sql = 'INSERT INTO {table}({keys}) VALUES({values})'.format(table=table,keys = keys ,values = values)print(sql)print(tuple(data))try :if cursor.execute(sql, tuple(data)):print("Succcessful")db.commit()except:traceback.print_exc()print("Failed")db.rollback()db.close()def main():createMysqlTable()url="http://58921.com/daily/wangpiao"html=getHtmlText(url)rlist=parsePage(html)mysqlData(rlist)main()

结果输出效果:

网络爬虫——前程无忧网数据获取及MYSQL存储相关推荐

  1. 网络爬虫——前程无忧网数据获取及存储(高级)

    网络爬虫--前程无忧网数据获取及存储(高级) 实验内容1 目标网站:前程无忧招聘网 目标网址:https://search.51job.com/list/120000,000000,0000,00,9 ...

  2. 网络爬虫——前程无忧网数据获取及存储

    网络爬虫--前程无忧网数据获取及存储 目标网站:前程无忧招聘网 目标网址:https://search.51job.com/list/120000,000000,0000,00,9,99,Python ...

  3. 网络爬虫——票房网数据抓取及存储

    网络爬虫--票房网数据抓取及存储 实验内容 目标网站:电影票房网 目标网址:http://58921.com/daily/wangpiao 任务要求 目标数据:(1)名次(2)电影名称 (3)日期(4 ...

  4. 小猿圈分享利用python网络爬虫获取网易云歌词

    今天小猿圈给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌曲ID: 调用网易云歌曲API,获取歌词: 将歌词写入文件,并存入本 ...

  5. 手把手教你写Python网络爬虫:网易云音乐歌单

    介绍 什么是爬虫? 先看看百度百科的定义: 网络爬虫 简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper).网络蜘蛛(Web spider),其行为一般是先"爬& ...

  6. python网络爬虫网易云音乐_一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取...

    标签下,如下图所示: 接下来我们利用美丽的汤来获取目标信息,直接上代码,如下图: 此处要注意获取ID的时候需要对link进行切片处理,得到的数字便是歌曲的ID:另外,歌曲名是通过get_text()方 ...

  7. 手把手教你用Python网络爬虫获取网易云音乐歌曲

    前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地. 跟着小编运行过代码的筒子们将 ...

  8. python网络爬虫 百度网盘_百度网盘爬虫(如何爬取百度网盘)

    因为要做去转盘网(分类模式点我),所以一定要爬取网盘资源,本来想自己写一个爬虫挺不容易的,不想分享出来,但最后还是决定了拿给大家一起看吧,毕竟有交流才有进步,有兴趣的朋友也可以看看我写的其他日志或者关 ...

  9. 网络爬虫-格言网全站数据(scrapy)

    人生就应该多读一点鸡汤→传送门 : 格言网 好了废话不多说,直接上干活,今天是如何利用scrapy框架爬取格言网的全站数据并存储至本地.如何安装配置scrapy环境请看我的另一篇文章:Scrapy环境 ...

  10. Scrapy网络爬虫实战[保存为Json文件及存储到mysql数据库]

    本文博客为原创,未经本人允许,不得扒下来传到百度文库及相关平台. 目录 Scrapy介绍 Scrapy建立新工程 用Pycharm打开工程并编辑 items的编写 Spider的编写 存储pipeli ...

最新文章

  1. SolrJ查询索引库
  2. C语言写一个简单的数学程序,用C语言计算简单的数学式子
  3. SAP Fiori里两种锁机制(lock)的实现
  4. Xcode6中如何对scrollview进行自动布局(autolayout)
  5. 服务器此时无法接受控制信息,您无法修改域或信任信息,因为无法联系一个主域控制器(PDC)仿真器,请确认当前域的PDC仿真器和网络都联机并正常运行。...
  6. foxmail怎么加入黑名单 foxmail导入黑名单邮箱地址的教程
  7. 全面解析Linux 内核 3.10.x - 如何开始
  8. 张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231
  9. IMP-00009: 导出文件异常结束 imp
  10. C++异常层次结构图
  11. 202019 大战360弹窗广告
  12. 深度学习实战 第7章循环神经网络笔记
  13. 记一次坑爹的RSA旅程____快哭了555555555(来自实验吧的warmup的wp和感想)
  14. 中国移动智慧城市建设惠及1.3亿用户
  15. 离散题目9(判断是否为单射函数)
  16. oss客户端工具_云享会 | 沃云公有云重点产品推荐:文件存储NASamp;对象存储OSS...
  17. 2021年中国海上风电行业发展现状分析,双碳循环下行业飞速发展「图」
  18. 上海羽毛球场预定app_羽球生活app下载-羽球生活(羽毛球场预定)v2.2.29_5577安卓网...
  19. Boll布林带突破策略
  20. linux下使用tcpdump工具分析UDP报文

热门文章

  1. mysql datesub interval_Mysql之INTERVAL与DATE_SUB与EXTRACT函数的使用
  2. 欧22转债,永02转债上市价格预测
  3. 7-7 浪漫的表白 (10 分) 计算生日差据天数
  4. 正点原子stm32视频教程第7~10节知识总结
  5. LC振荡电路的工作原理
  6. 书中自有黄金屋系列5:读《正面管教》
  7. Ubuntu18.04安装Pangolin0.6
  8. 解决ffmpeg报错Non-monotonous DTS in output stream 0:0;
  9. [人物]发明了自我的人--卡帕(外二篇)
  10. 服务器winsxs文件夹怎么清理工具,winsxs文件夹怎么清理 winsxs文件夹清理方法教程...