Python 抓取拉勾网职位分布[回报 v2ex]

2016-08-15 19:17:44 +08:00
 allencode

之前在 V2 求问过爬取拉勾的思路。现在基本达到自己的要求了。分享出来。希望有用。

思路

细节

如下 Request URL 中的 %E7... 即为对应查询关键字的 16 进制表现形式。

如下 Form Data 皆为 Post 需要构建的表单。

存储

def insert_data(self,data):
    data['_id'] = data['positionId']
    data['updateTime'] = datetime.datetime.now()
    # 防止重复插入
    db.Collection.update_one(
        filter={'_id': data['_id']},
        update={'$set': data},
        upsert=True
    )
    count = db.Collection.count()
    print u'已经存储了:',count,u'条记录'

代码

写了很多爬虫,分享给大家。共同进步学习。希望有用。

代码可以在这里取到

5448 次点击
所在节点    Python
10 条回复
ioiogoo
2016-08-15 19:27:04 +08:00
`如下 Request URL 中的 %E7... 即为对应查询关键字的 16 进制表现形式`
这个应该是 url 编码后的表现形式啊
allencode
2016-08-15 19:30:09 +08:00
@ioiogoo 嗯 是的。代码中可以用 Python 相应模块将关键字转化为 16 进制形式。

keyWord1 = urllib.quote(hy)

这句代码即可实现汉字到 16 进制编码的转换。
lzgbeyong
2016-08-16 11:07:55 +08:00
楼主资料整理的很详细,赞一个。
正好我最近用 ndoe 也做了一个拉勾网的爬虫,可以实时在线查看招聘职位数量和城市的分布,有兴趣的可以看看。
因为 js 的异步特性,爬取多个 url 的信息会比 python 快很多。

在线地址: http://123.56.17.200:8082/
github 地址: https://github.com/woxixiulayin/lagou_spider
allencode
2016-08-16 11:13:55 +08:00
@lzgbeyong 哈哈,好的。学习一个。
sleshep
2016-08-16 11:58:32 +08:00
@lzgbeyong
gevent 表示不服
allencode
2016-08-16 14:03:22 +08:00
@lzgbeyong 绘图好赞。是百度的那个 Echarts 吗
pathbox
2016-08-16 20:04:11 +08:00
果然 还是会被封
allencode
2016-08-16 20:13:42 +08:00
@pathbox 嗯呢。爬了两个晚上。都是早上被封的。后来抓了些代理,但是可用性不高。能用的也只有五六个。我把抓代理的代码也贴上好了。
lzgbeyong
2016-08-16 20:27:00 +08:00
@allencode 是的, api 很简单,你可以用来做展示
allencode
2016-08-16 20:36:08 +08:00
@lzgbeyong 嗯呢 我就打算用那个来做展示呢,现在还没怎么会用。只会用在线的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/299473

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX