花三分钟给女票写一个爬虫,做一回模范男友!

2022-09-19 10:32:05 浏览数 (1)


主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, greenwillow, v-green, vue-pro, healer-readable, mk-cute, jzman, geek-black, awesome-green, qklhk-chocolate

贡献主题:https://github.com/xitu/juejin-markdown-themes

theme: juejin highlight:


烦恼波及

女票是做运营的,一直苦恼于起推文标题。领导还会频繁突袭:“XX,给这次活动拟一个标题。”

tmd,自己分内的活都干不完,却要为活动策划起标题流汗,不是自己的活,还得笑着干!着实烦人!

更坏的是,负面情绪都是会传染的,女票的烦恼就是咱的烦恼,甚至是大于咱的烦恼。/(ㄒoㄒ)/~~

不过幸好!,咱程序员的本领就是四个字:解决问题。(●'◡'●)

为此,我们可以花几分钟简单写一个爬虫,再想要什么标题,就不用空想了,直接让她挑选就行!女孩子什么的,最爱“逛该”了!

闲言少叙,直接奥里给!

解决思路

本瓜其实是个爬虫新手,不过这也不是啥复杂问题,咱就直接上 python !

(不过事后感觉还是 node 好用,毕竟 js 操作咱都“精通”......)

基本思路:

  1. 安装环境;
  2. 选取目标网站;
  3. 写脚本;
  4. 运行并解析返回结果;
  5. 生成文件;

下面针对以上说说几个要点:

  1. python 安装分为 python2 和 python3,python3 并未向下兼容,两者区别较大,所以建议都安装。命令行也做区分,教程大把,不做赘述;
  2. 选取目标网站,这个很关键,也需要花一点时间。需要分析页面内容和自己的需求匹配程度,然后看请求和数据返回结构来作出选择;
  3. 写爬虫脚本的思路基本上是“引入库”=>“读数据”=>“解析数据”=>“写数据”;
  4. 解析的过程是最重要且最复杂的过程,需要数据结构理的清,正则匹配用的好;
  5. 我们根据需要生成不同的文件,比如 .txt 、.xml 等,它们都有对应的库,调用即可;

代码实现

接下来直接上代码:

  • 注:爬取数据有的是从返回的 HTML DOM 里面拿,有的是从 XHR/JS 返回的 DATA 里面拿;根据需要选择,本次取后者~

// index.py

代码语言:javascript复制
# 供获取数据
import requests
# 供字符串转数组
import json
# 设置 headers 防止被封
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3"
}
# 变量申明
write_content = ''
# 目标 url,解析参数很重要,此处的 size 原本为 10,可调整至 1000,就不用写循环了
url = "https://v2.sohu.com/integration-api/mix/region/10431?size=1000&adapter=pc&secureScore=50&page=1"

# 接受数据字符串
res = requests.get(url, headers=headers).text
# 字符串转 json
j = json.loads(res)
# 拿到 data 数据
dataArr=j["data"]

# 遍历
for i in dataArr:
    try:
        print(i['title'])
        # 标题   换行
        write_content = i['title'] '.n' '.n'
        with open("souhuEduTitle.txt","a",encoding="utf-8") as f:
            f.write(write_content)
    # 此处错误捕获非常重要,目标网站列表有些是广告项,没有 title 属性
    except KeyError:
        pass

运行

代码语言:javascript复制
python3 index.py

就能得到几百条关于中小学教育行业文章标题的爬取数据啦:

意外收尾

如何?花三分钟给女票写一个爬虫,咱也要做一回模范男友,解决女票痛之痛。哈哈

0 人点赞