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)

效果如下

Python:获取 V2ex 中的工作实习信息_第1张图片
screenshot.png

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

来自个人 Python 文集

你可能感兴趣的:(Python:获取 V2ex 中的工作实习信息)