Python:获取 V2ex 中的工作实习信息

v2ex 中酷工作节点经常有IT 工作相关的招聘信息。正式工作和实习都有。
以下的程序用浏览器和ctrl+f完全能完成,但是明显效率太低。

程序不复杂,功能是高亮显示标题中包含关键词(可以自定义关键词)的贴,并输出地址。
不得不说 v2ex 中标题起得很规范,一般都是[地点]+[公司]+[工作内容]

还是用了 BeautifulSoup 和 requests 这两个库。

参考:
Quickstart — Requests 2.18.3 documentation
Beautiful Soup 4.4.0 文档 — beautifulsoup 4.4.0 文档

要留意的是关键词是只要满足一个就高亮输出标题,并非高亮输出该关键词。

#!/usr/bin/python3
# -*- coding:utf-8 -*-

import requests,re
from bs4 import BeautifulSoup

keywords = ['北京','实习'] # 关键词可以自定义

for i in range(1,5): #从第一页到第四页,想要更多内容自行调整数字
    html = requests.get('https://www.v2ex.com/go/jobs?p='+str(i)).content

    soup = BeautifulSoup(html,'lxml')

    topic = soup.find('div',attrs = {'id':'TopicsNode'}) #定位

    for val in topic.find_all('div'):
        if 'cell' not in val['class']:
            continue

        text = val.getText().replace('\n','') #去除多余换行符

        bold = False

        for var in keywords:
            if var in text:
                bold = True #存在关键词则高亮显示

        if bold:
            print("\033[32;1m " + text + "\033[0m")
            pattern = re.compile('t_([0-9]+)')
            res = pattern.match(val['class'][2]) #找到贴的地址
            if res:
                print("\033[32;1m " + 'https://www.v2ex.com/t/'+res.group(1) + "\033[0m")
        else:
                print(text)

效果如下

screenshot.png

其实还有很多可以改进的地方,如果你有更好的 idea,欢迎评论。

来自个人 Python 文集

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 26,102评论 7 249
  • 声明:本文讲解的实战内容,均仅用于学习交流,请勿用于任何商业用途! 一、前言 强烈建议:请在电脑的陪同下,阅读本文...
    Bruce_Szh阅读 13,005评论 6 28
  • 实在是累的不要不要的,再次被迫打车。打的费每天一百元,一个月三千元。想方设法把自己花出去的每一分钱,变得之前。 我...
    闫小草阅读 207评论 0 0
  • 【同读一本书】2016-3-30-18 —《影响力》 【原文】: 中国的媒体记者为什么那么需要来自外国人的肯...
    f961ff2e749a阅读 449评论 0 0

友情链接更多精彩内容