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

烦恼波及

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

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

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

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

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

闲言少叙,直接奥里给!数组

解决思路

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

(不过过后感受仍是 node 好用,毕竟 js 操做咱都“精通”......)数据结构

基本思路:网站

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

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

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

代码实现

接下来直接上代码:

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

// index.py

# 供获取数据
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
复制代码

运行

python3 index.py
复制代码

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

意外收尾

如何?花三分钟给女票写一个爬虫,咱也要作一回模范男朋友,解决女票痛之痛。哈哈🤭,彷佛立刻就要被表扬了呢~

因而乎,本瓜高兴满满把 .txt 发与女票,结果谁曾想获得以下回复:

好吧,女生“逛该”果真都很挑,打扰了~

咱不如先直接给她画个饼撑饱她吧🤭:

相关文章
相关标签/搜索