python爬取控制台信息_python爬虫实战之爬取智联职位信息和博客文章信息
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 str
JobLactionID = 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 = 1
while page <= page_count:
print('----------------第', page, '页-----------------')
result = zhilian(page, position)
# print_data(result)
body = result['body']['JobList']
insert(body)
page = page + 1
if __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 = 0
for item in titles:
results = {
'标题': titles[i],
'链接': hrefs[i]
}
i = i + 1
print(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 + 1
get_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 + 1
url = page_url + str(page)
if __name__ == '__main__':
page_url = 'https://blog.csdn.net/zwx19921215/article/list/'
get_page2(page_url, 1)
希望能帮到你们,最后分享一些小福利
提取码:kt2v
链接容易被举报过期,如果失效了就在这里领取吧
python爬取控制台信息_python爬虫实战之爬取智联职位信息和博客文章信息相关推荐
- 利用python爬取租房信息_Python爬虫实战(1)-爬取“房天下”租房信息(超详细)
#前言html 先看爬到的信息:python 今天主要用到了两个库:Requests和BeautifulSoup.因此我先简单的说一下这两个库的用法,提到的都是此文须要用到的.编程 #Requests ...
- python爬百度贴吧_Python爬虫实战之爬取百度贴吧帖子
大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标对百度贴吧的任意帖子进行抓取 指定是否只抓取楼主发帖内 ...
- python小爬虫(爬取职位信息和博客文章信息)
1.python爬取招聘信息 简单爬取智联招聘职位信息(仅供学习) # !/usr/bin/env python # -*-coding:utf-8-*- """ @Au ...
- python爬取boss直聘招聘信息_Python爬虫实战-抓取boss直聘招聘信息
Python Python开发 Python语言 Python爬虫实战-抓取boss直聘招聘信息 实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Pyth ...
- go爬虫和python爬虫哪个好_python 爬虫实战项目--爬取京东商品信息(价格、优惠、排名、好评率等)-Go语言中文社区...
利用splash爬取京东商品信息 一.环境 window7 python3.5 pycharm scrapy scrapy-splash MySQL 二.简介 为了体验scrapy-splash 的动 ...
- python爬取汽车之家_python爬虫实战之爬取汽车之家网站上的图片
随着生活水平的提高和快节奏生活的发展.汽车开始慢慢成为人们的必需品,浏览各种汽车网站便成为购买合适.喜欢车辆的前提.例如汽车之家网站中就有最新的报价和图片以及汽车的相关内容,是提供信息最快最全的中国汽 ...
- python爬虫爬取教程_python爬虫实战之爬取京东商城实例教程
前言 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1. ...
- python实例豆瓣音乐代码_Python爬虫实战(3)-爬取豆瓣音乐Top250数据(超详细
前言 首先我们先来回忆一下上两篇爬虫实战文章: 第一篇:讲到了requests和bs4和一些网页基本操作. 第二篇:用到了正则表达式-re模块 今天我们用lxml库和xpath语法来爬虫实战. 1.安 ...
- python爬取链家新房_Python爬虫实战:爬取链家网二手房数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...
最新文章
- ORA-01123:无法启动联机备份;未启用介质恢复(错误分析)
- HDU 6321 Problem C. Dynamic Graph Matching (状压dp)
- linux python3运行,将Python3安装到Linux上并运行
- php数据库删除数据,php数据库删除数据的简单示例
- 4月18日云栖精选夜读 | 阿里靠什么支撑 EB 级计算力?
- jQuery 源码系列(二)init 介绍
- python3 数据结构_python系列十一:python3数据结构
- 品鉴贝叶斯公式里的大道理
- 【又见LCS】NYOJ-37 回文字符串
- NCL中绘制中国任意省份的精确地图
- 攻击机靶机环境搭建——网络设置
- python输入学生成绩计算平均值_从用户输入中计算和、积和平均值
- 历史 微信开发者工具_微信开发者工具历史记录
- 租房减税30,房东加租300!
- 什么是网络流量劫持?
- 读《Ideal MHD》(1)-磁流体力学方程组推导
- MySQL创建自定义函数提示:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its ......
- 【矩阵论】6. 正规方程与矩阵方程求解
- idea mysql可视化_IntelliJ IDEA 内置数据库管理工具实战
- 了解如何通过 UltraEdit丨UEStudio 中的窗口停靠系统显示、控制和配置文件选项卡
热门文章
- Dejavu Sans Mono字体使用指南
- android手机怎么拆机,Android 4.0手机Galaxy Nexus拆解报告
- 计算机里面excel移动不了,笔记本电脑excel光标不能移动怎么办
- 织梦dedecms深蓝色室内装修设计公司网站模板(自适应手机移动端)
- codeforce-Enduring Exodus(二分真好用)
- CSS_如何设置滚动条样式_超出左右滚动
- 大数据:从阿里数据分析岗看未来核心竞争力(六)
- 创建第一个 Rails 程序(使用mysql)
- 爬虫Jsoup设置代理
- 数据库服务器系统软件,服务器数据库用什么系统软件