1.python爬取招聘信息

简单爬取智联招聘职位信息(仅供学习)

# !/usr/bin/env python
# -*-coding:utf-8-*-
"""
@Author  : xiaofeng
@Time    : 2018/12/18 16:31
@Desc : Less interests,More interest. (爬取智联招聘职位数据)
@Project : python_appliction
@FileName: zhilianzhaopin.py
@Software: PyCharm
@Blog    :https://blog.csdn.net/zwx19921215
"""import pymysql as db
import requests# mysql配置信息
mysql_config = {'host': '101.0.2.110','user': 'test','password': 'test','database': 'xiaofeng','charset': 'utf8'
}# url
url = 'https://data.highpin.cn/api/JobSearch/Search'"""
爬取智联招聘职位数据
@:param page 页码
@:param position 职位关键字
"""def zhilian(page, position):# 封装头信息headers = {'Referer': 'https://www.highpin.cn/zhiwei/','Origin': 'https://www.highpin.cn','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36','Accept': 'application/json, text/javascript, * / *; q=0.01',}# 表单信息datas = {'Q': position,'pageIndex': page}resp = requests.post(url, data=datas, headers=headers)result = resp.json()return result"""
控制台输出
"""def print_data(result):body = result['body']['JobList']print(body)"""
数据入库
"""def insert(result):print("insert......")database = db.connect(**mysql_config)for item in result:print(item)sql = "INSERT INTO zhilian(JobID,JobTitle,ReferrerType,CompanyName,AnnualSalaryMin," \"AnnualSalaryMax,JobLactionStr,JobLactionID,JobTags\,JobDegree,JobDegreeId,WorkExperience,WorkExperienceID,CompanyIndustry,CompanyIndustryID," \"CompanyType,CompanyTypeID,PublishDate,CompanyScale,SalaryWhite) \VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"# list convert to strJobLactionID = str(item['JobLactionID'])CompanyIndustryID = str(item['CompanyIndustryID'])if 'JobTags' in item:JobTags = str(item['JobTags'])else:JobTags = ''cursor = database.cursor()cursor.execute(sql, (item['JobID'], item['JobTitle'], item['ReferrerType'], item['CompanyName'], item['AnnualSalaryMin'],item['AnnualSalaryMax'],item['JobLactionStr'], JobLactionID, JobTags, item['JobDegree'], item['JobDegreeId'],item['WorkExperience'],item['WorkExperienceID'], item['CompanyIndustry'], CompanyIndustryID, item['CompanyType'],item['CompanyTypeID'], item['PublishDate'], item['CompanyScale'], item['SalaryWhite']))database.commit()cursor.close()database.close()def main(position):result = zhilian(1, position)page_count = result['body']['PageCount']print("---------------共", page_count, "页-------------")page = 1while page <= page_count:print('----------------第', page, '页-----------------')result = zhilian(page, position)# print_data(result)body = result['body']['JobList']insert(body)page = page + 1if __name__ == '__main__':main('java')

控制台输出信息

入库数据

2.python爬取csdn博客文章

python简单爬取csdn博客文章列表(仅供学习)

步骤:

1.分页获取博客url

2.解析html 获取指定信息

# !/usr/bin/env python
# -*-coding:utf-8-*-
"""
@Author  : xiaofeng
@Time    : 2018/12/20 11:30
@Desc : Less interests,More interest.(爬取csdn博客文章列表)
@Project : python_appliction
@FileName: csdn.py
@Software: PyCharm
@Blog    :https://blog.csdn.net/zwx19921215
"""
import requests
from lxml import html# 声明头信息
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'
}"""
解析html,获取相关数据
@:param url 网页路径
"""def parse_html(url):response = requests.get(url=url, headers=headers)text = html.fromstring(response.text)hrefs = text.xpath('//h4/a/@href')title = text.xpath('//h4/a/text()')"""文章摘要、发布日期、阅读数、评论数等其余属性自行按需获取即可"""# 移出第一个元素链接,不知道为啥 csdn 博客默认都多了一条数据,也就多了一个链接hrefs.pop(0)titles = []# 格式化标题for item in title:st = str(item).replace('\n', '').strip()if st != '':titles.append(st)# 组合输出# 移出第一个元素,不知道为啥 csdn 博客默认都多了一条数据 “帝都的凛冬”titles.pop(0)i = 0for item in titles:results = {'标题': titles[i],'链接': hrefs[i]}i = i + 1print(results)"""
自动判断页数
@:param page_url 页面路径
@:param page 页号
"""def get_page(page_url, page):url = page_url + str(page)print('url=', url)response = requests.get(url=url, headers=headers)text = html.fromstring(response.text)next_page = text.xpath('//div[@class="ui-paging-container"]/ul/li[@class="js-page-next js-page-action ui-pager"]/text()')if next_page:parse_html(url)page = page + 1get_page(page_url, page)else:return -1"""
分页爬取相关数据
@:param page_url 页面路径
@:param page 页号
"""def get_page2(page_url, page):url = page_url + str(page)while page <= 10:print('\n')print("----------------------第", page, "页--------------------")print('url=', url)print('\n')parse_html(url)page = page + 1url = page_url + str(page)if __name__ == '__main__':page_url = 'https://blog.csdn.net/zwx19921215/article/list/'get_page2(page_url, 1)

python小爬虫(爬取职位信息和博客文章信息)相关推荐

  1. 一文搞定scrapy爬取众多知名技术博客文章保存到本地数据库,包含:cnblog、csdn、51cto、itpub、jobbole、oschina等

    本文旨在通过爬取一系列博客网站技术文章的实践,介绍一下scrapy这个python语言中强大的整站爬虫框架的使用.各位童鞋可不要用来干坏事哦,这些技术博客平台也是为了让我们大家更方便的交流.学习.提高 ...

  2. python爬取控制台信息_python爬虫实战之爬取智联职位信息和博客文章信息

    1.python爬取招聘信息 简单爬取智联招聘职位信息 # !/usr/bin/env python # -*-coding:utf-8-*- """ @Author  ...

  3. Python POST 爬虫爬取掘金用户信息

    Python POST 爬虫爬取掘金用户信息 1. 概述 Python第三方库requests提供了两种访问http网页的函数,基于GET方式的get()函数和基于POST方式的post()函数. g ...

  4. 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  5. python爬电影_使用Python多线程爬虫爬取电影天堂资源

    最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...

  6. python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  7. python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...

    原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...

  8. Python动态爬虫爬取京东商品评论

    Python 动态爬虫爬取京东商品评论 1. 概述 京东商城是Python爬虫初学者试手的经典平台,反爬虫程度较低,但评论采取了动态加载的方式,爬取京东商品评论是学习动态爬虫的一个极佳方法. 动态爬虫 ...

  9. Python Scrapy 爬虫 - 爬取多级别的页面

    Python Scrapy 爬虫 - 爬取多级别的页面 互联网中众多的 scrapy 教程模板,都是爬取 下一页 → \rightarrow →下一页形式的,很少有 父级 → \rightarrow ...

最新文章

  1. C# 获取 IE 临时文件
  2. 翻译: TypeScript 1.8 Beta 发布
  3. Android 文本实现跑马灯效果 用自带的TextView控件
  4. “压扁数组”技巧(flattening the array)
  5. mysql相邻行数据计算的自定义变量@和Lead窗口函数的具体案例适应版本mysq5.7 mysql8.0
  6. 邓迎春绘画201702作品08
  7. CSS样式:覆盖规则
  8. 【原创】从 列表的重复 到 用sum展开二层嵌套列表将子元素合并
  9. CSS中选择器优先级顺序实战讲解
  10. python属于面向对象的还是面向过程的呀-面向过程和面向对象的理解
  11. android keytool工具,keytool工具的使用
  12. linux下.dep文件,Linux 安装 golang 和 dep (附错两个误解决方法)
  13. YOLOX测试-VOC格式
  14. priority java_java基础—-多线程之priority(四)
  15. mysql左连接和右连接_MYSQL 左连接与右连接
  16. 从柯洁对战AlphaGo,看商业智能
  17. 斩获微软offer后,我总结出这10个面试必备技巧(五星干货)
  18. PDF文件的旋转和保存
  19. excel合并多个工作表
  20. 第06周 预习:接口与多态

热门文章

  1. mac系统及xcode使用的SVN客户端安装升级
  2. IOS 远程测试方案
  3. 【centOS】centOS安装图形界面
  4. springboot 添加 jsp支持
  5. powerdesigner奇淫技
  6. 【一起学OpenFOAM】04 OpenFOAM的学习资源
  7. 使用windows server backup备份还原hyper-v 3.0虚拟机
  8. 微信小程序自定义弹窗实例
  9. PHP环境搭建:Windows 7下安装配置PHP+Apache+Mysql环境教程
  10. linux扩充单个路径下的内存,超详尽!Linux云服务器存储扩容实操