直接上代码

import requests
from bs4 import BeautifulSoup
import time
import pymysql#得到每个的详细信息
def get_info(URL):headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0' }try:wb_data = requests.get(URL,headers=headers)#获取整个页面soup = BeautifulSoup(wb_data.content, 'html.parser')#名称NameList = soup.select('div.pos_base_info > span.pos_title')name = NameList[0].text.strip()#第二名称LastList = soup.select('span.pos_name')last = LastList[0].text.strip()#行业HyList = soup.select('p.comp_baseInfo_belong > a')hy = HyList[0].text.strip()#公司GsList = soup.select('div.baseInfo_link > a')gs = GsList[0].text.strip()#标签BqList = soup.select('div.pos_welfare > span.pos_welfare_item')bq = BqList[0].text.strip()+'|'+BqList[1].text.strip()+'|'+BqList[2].text.strip()+'|'+BqList[3].text.strip()+'|'+BqList[4].text.strip()+'|'+BqList[5].text.strip()#bq = oldBq.str.replace("-", "|")#要求YqList = soup.select('div.pos_base_condition > span.item_condition')yq = YqList[0].text.strip()+'|'+YqList[1].text.strip()+'|'+YqList[2].text.strip()#价格JgList = soup.select('span.pos_salary')jg = JgList[0].text.strip()#地址AddressList = soup.select('div.pos-area > span')address = AddressList[0].text.strip()+'-'+AddressList[1].text.strip()#描述MsNameList = soup.select('div.des')ms = MsNameList[0].text#介绍JsList = soup.select('div.shiji > p')js = JsList[0].textjob_all = [name,last,hy,gs,bq,yq,jg,address,ms,js]print('数据获取成功!')#返回爬取的数据return job_allexcept:print('爬取错误') #不想看到这句话,可以写pass#创建数据库
def database_found():# 打开数据库连接,不需要指定数据库,因为需要创建数据库conn = pymysql.connect(host='localhost', user="root", passwd="root")# 获取游标cursor = conn.cursor()# 创建pythonBD数据库cursor.execute('CREATE DATABASE IF NOT EXISTS 58_job DEFAULT CHARSET utf8;')conn.select_db('58_job')cursor = conn.cursor()# `id` int(11) NOT NULL AUTO_INCREMENT,sql = """CREATE TABLE IF NOT EXISTS `job` (`name` varchar(255),`last` varchar(255),`hy` varchar(255),`gs` varchar(255),`bq` varchar(255),`yq` varchar(255),`jg` varchar(255),`address` varchar(255),`ms` varchar(1000),`js` varchar(1000)) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0"""cursor.execute(sql)cursor.close()  # 先关闭游标conn.close()  # 再关闭数据库连接#向数据库插入数据
def save_page_data(data: list):conn = pymysql.connect(host='localhost',user='root',password='root')conn.select_db('58_job')cur = conn.cursor()sql_str = f'insert into job values ("'+data[0]+'","'+data[1]+'","'+data[2]+'","'+data[3]+'","'+data[4]+'","'+data[5]+'","'+data[6]+'","'+data[7]+'","'+data[8]+'","'+data[9]+'");'if cur.execute(sql_str) == 0:print('写入错误!')else:print('写入数据成功!')cur.close()conn.commit()conn.close()'''
下面是得到一个列表页的所有链接,然后单个请求页面并获取数据
'''
def get_all_info():#地区 郑州"0d30364d-0015-60bd-6f5c-6b4f6a48df00"addr_code = '0d30364d-0015-60bd-6f5c-6b4f6a48df00'#页数page_num = '1'#开始计时start_time = time.time()res = []#初始urlurl = f'https://zz.58.com/yewu/pn{page_num}/?PGTID={addr_code}&ClickID=3'headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0' }try:wb_data = requests.get(url,headers=headers)soup = BeautifulSoup(wb_data.text, 'html.parser')GetLink = soup.select('div.job_name > a')except:print('列表页信息被修改,所以爬取错误')for i in GetLink:#得到href链接link = i.get('href')#选择url带有“业务”拼音“yewu”的链接,有便执行get_info()if 'yewu' in link:#间歇一秒#time.sleep(1)#添加到resres.append(get_info(link))#排除list中的None,因为有些信息爬取失败new_res = []for i in res:if i is not None:new_res.append(i)#创建数据库database_found()all_num = len(new_res)while new_res:print(len(new_res))save_page_data(new_res.pop())print(f'成功爬取{all_num}条数据,共耗时{time.time() - start_time}s') get_all_info()

python3爬取58同城一页招聘信息并存入数据库,虽然有一些扒不下来,希望有大神指点相关推荐

  1. 爬取拉钩网60条招聘信息并存入数据库

    信息提取说明: 1.将驱动放在python.exe同级目录下,模拟浏览器时不需要写驱动地址 2.查找搜索框元素,向其中传入keys 3.查找搜索按钮,用click方法模拟点击 4.sleep 8秒,确 ...

  2. java爬取酷狗榜单歌曲信息并存入数据库

    这里只解析一下代码,所需工具jsoup.HttpClient httpCLient获取html后,用jsoup解析html,再用java来获取所需要的信息. 之前写的有点问题,今天改了一下.因为通过h ...

  3. 使用Scrapy框架爬取58同城的出租房信息

    from scrapy.exceptions import DropItem from pymongo import MongoClient from scrapy.conf import setti ...

  4. 爬取智联招聘信息并且存入数据库

    任务爬取智联页面的招聘信息并且存入数据库. 由于是初次尝试 这里选择了固定的页面存入数据库. 首先确定需要爬取的页面 http://sou.zhaopin.com/jobs/searchresult. ...

  5. python爬取58同城的兼职信息

    标题python爬取58同城的兼职信息 刚刚开始学习爬虫,一些 自己研究的小东西,爬取58同城上面的兼职信息放入Excel表格里,具体代码解释在代码里给出注释,下面给出完整代码: #首先是导包 imp ...

  6. python爬取58同城房子发布的手机号码_爬虫(成都58同城所有房价,Python实现)

    Python实现爬虫(爬取58同城所有房价) 程序发布日期2018-9-25(如果以后不能使用了,就需要更改解析方式.) github博客传送门 csdn博客传送门 爬虫文件(Python实现)-爬取 ...

  7. python爬取大众点评_浅谈python爬取58同城,大众点评这两个网站

    1.爬取58同城租房网遇到的坑:我爬了一页数据被封了ip,此时的我是非常的不爽,才十几条数据就封我,于是我就想着一定得找ip代理来解决这个问题,后面就写了个ip代理去弄,另外把之前头部信息ua改成了u ...

  8. python实战|python爬取58同城租房数据并以Excel文件格式保存到本地

    python实战|python爬取58同城租房数据并以Excel文件格式保存到本地 一.分析目标网站url 目标网站:https://cq.58.com/minsuduanzu/ 让我们看看网站长啥样 ...

  9. python:爬取58同城全部二手商品信息(转转网)

    python_58ershou python+beautifulsoup多线程爬取58同城二手全部商品信息,并在jupyter上将数据可视化 项目主程序在58_index中: 建立mango数据库表 ...

最新文章

  1. R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图、混淆矩阵、准确率、精确度、召回率、ROC、AUC)、PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)
  2. MyBatisPlus条件构造器中last方法怎样使用
  3. @Cacheable原理
  4. 我们离DevOps有多远--持续集成思想的延伸
  5. c语言开发 .c .h,求助C语言大佬 , 只会写到一个.c文件里 ,不会用.h头文件
  6. laradock双版本php,自己撸一个 LaraDock(使用 Docker LNMP 部署 PHP 开发环境)
  7. 代码创建数据库_表--SqlServer数据库
  8. mysql知识点拾遗梳理
  9. 阿里云平台购买域名 备案步骤
  10. 新媒传信Java_新媒小课堂——多媒体、流媒体、富媒体
  11. 解决联想小新air13pro笔记本电脑插入耳机没声音的问题
  12. std::cunction() 简单描述
  13. c语言扇形打印图片,圆形CD绘制 (扇形)
  14. Linux下Graphite的安装及部署
  15. 什么是RAM?如何清理电脑RAM?
  16. 自定义SpringBoot程序启动图标
  17. Vue进阶(幺玖叁):$OPTIONS 讲解
  18. linux里 read函数用法
  19. Win7 BitLocker加密须了解的五件事
  20. 递归 谢尔宾斯基三角形

热门文章

  1. 仿小米商城电脑官网-纯HTML+CSS(含轮播图)
  2. java爬取闲鱼商品信息(三)_java爬取闲鱼商品信息(三)
  3. 宠物医院微信小程序的开发与实现
  4. 你的团队是池塘?还是舰队?
  5. jQuery为table表格动态添加或删除tr
  6. linux清理磁盘空间
  7. 你了解日语音频怎么免费转成文字吗
  8. 什么是抖音seo优化?企业抖音seo该如何操作?
  9. ubuntu Nvidia 深度学习环境问题汇总
  10. Python基础教程(第2版 修订版) pdf