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)
效果如下
其实还有很多可以改进的地方,如果你有更好的 idea,欢迎评论。
来自个人 Python 文集