文档章节

Python3.5.3 urllib简单爬取51job

M
 MichaelShu
发布于 2017/04/18 15:53
字数 389
阅读 49
收藏 0

python3自带的urllib编写的简单爬虫,适合一般反爬的网站,python做爬虫代码很少开发快,主要就是了解爬虫的流程和正则表达式。

import urllib.request
import re

def get_html(url):
    #http header, because some websites have anti crawler mechanism
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36'}

    req = urllib.request.Request(url, headers=headers)
    response = urllib.request.urlopen(req)
    html = response.read().decode('gbk')
    print(html)
    return html

def get_contents(html):
    #pattern = re.compile('<span>\s*?<a target="_blank" title="(.*?)"')
    #pattern = re.compile('<span>\s*?<a target="_blank" title="(.*?)" href="(.*?)"')
    #pattern = re.compile(r'<span>\s*?<a target="_blank" title="(.*?)" href="(.*?)"[\s\S]*?<span class="t2"><a target="_blank" title="(.*?)"')
    #pattern = re.compile(r'<p class="t1 ">[\s\S]*?<span>\s*?<a target="_blank" title="(.*?)" href="(.*?)"[\s\S]*?<span class="t2"><a target="_blank" title="(.*?)"')
    #pattern = re.compile(r'<p class="t1 ">[\s\S]*?<span>\s*?<a target="_blank" title="(.*?)" href="(.*?)"[\s\S]*?<span class="t2"><a target="_blank" title="(.*?)"[\s\S]*?<span class="t3">(.*?)</span>')
    #pattern = re.compile(r'<p class="t1 ">[\s\S]*?<span>\s*?<a target="_blank" title="(.*?)" href="(.*?)"[\s\S]*?<span class="t2"><a target="_blank" title="(.*?)"[\s\S]*?<span class="t3">(.*?)</span>[\s\S]*?<span class="t4">(.*?)</span>')

    pattern = re.compile(r'<p class="t1 ">[\s\S]*?<span>\s*?<a target="_blank" title="(.*?)" href="(.*?)"[\s\S]*?<span class="t2"><a target="_blank" title="(.*?)"[\s\S]*?<span class="t3">(.*?)</span>[\s\S]*?<span class="t4">(.*?)</span>[\s\S]*?<span class="t5">(.*?)</span>')
    items = pattern.findall(html)

    for item  in items:
        print( "职位名:%s   链接:%s   公司名:%s   工作地点:%s   薪资:%s   发布时间:%s" % (item[0],item[1],item[2],item[3],item[4],item[5]) )
        #break

#url = 'http://www.51job.com/'
url = 'http://search.51job.com/list/010000,000000,0000,00,9,99,Python%25E5%25BC%2580%25E5%258F%2591%25E5%25B7%25A5%25E7%25A8%258B%25E5%25B8%2588,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare='
html = get_html(url)
get_contents(html)

© 著作权归作者所有

M
粉丝 7
博文 111
码字总数 24050
作品 0
海淀
技术主管
私信 提问
实战(一)之使用自带urllib和re正则表达式获取电影详情页链接

一、关于urllib库 网上urllib库的教程文章非常多而且详细具体,我就不过多叙述和重复了,个人更加倾向于将精力放在实战上,而不是反反复复拷贝教程(其实是因为我懒),来几篇干货参考。 py...

歪文
2018/10/29
0
0
Python3网络爬虫——(1)利用urllib进行简单的网页抓取

利用urllib进行简单的网页抓取 urllib是Python提供的用于操作URL的模块 l、快速使用urllib爬取网页

飞天小橘子
2018/04/03
0
0
简单爬虫(urllib+BeautifulSoup)

爬虫是怎么实现的? 简单介绍 爬虫:一段自动抓取互联网信息的程序 从一个url出发,然后访问和这个url相关的各种url,并提取相关的价值数据。 URL:Uniform Resource Location的缩写,译为“...

廖少少
2017/10/31
0
0
Python入门简单的静态网页爬虫2.0 (实现各模块的具体方法)

一、URL管理器 URL管理器:管理待爬取URL集合和已抓取的URL集合,主要是为了防止重复和循环抓取。 功能分析:添加newurl到待爬取集合中,在添加之前进行判重。获取待爬取的URL后判断管理器中...

御前带刀红衬衫
2016/04/26
103
0
Python3.x实现简单爬虫—爬糗事百科

1、Python版本:3.5,urllib库, 2、爬取糗事百科24小时热门段子,第一页(网页地址:http://www.qiushibaike.com/hot/1) 3、使用正则匹配, re库 4、Python2的urllib、urllib2合并成pytoh...

大猩猩secrets
2016/10/25
47
0

没有更多内容

加载失败,请刷新页面

加载更多

ubuntu或ubuntu kylin优麒麟中安装QQ、wechat微信、百度网盘

从中国国内的地址下载deepin wine,码云上的。这样网速比较快。然后,按照说明向下安装。 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu...

gugudu
24分钟前
1
0
基于redis分布式锁实现“秒杀”

最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源...

别打我会飞
44分钟前
13
0
Zookeeper的实践指南

本章重点 1.数据存储2.基于Java API初探Zookeeper的使用3.深入分析Watcher机制的实现原理4.Curator客户端的使用,简单高效 数据存储 事务日志快照日志运行时日志 bin/zookeepe...

须臾之余
47分钟前
1
0
MySQL mybatis Point类型数据

MySQL中的point用于表示GIS中的地理坐标,在GIS中广泛使用 如何写入mysql,如下图: CREATE TABLE `test-point` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '序号', `point` ......

张欢19933
58分钟前
2
0
设计模式-适配器模式

适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入...

HOT_POT
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部