美文网首页
撩妹段子必备,糗事百科24小时最热段子抓取

撩妹段子必备,糗事百科24小时最热段子抓取

作者: 黑马程序员上海中心 | 来源:发表于2019-02-15 11:23 被阅读98次

生活有时候就是太枯燥,而一板一眼的就更让人讨厌了~~~

眼看着自己喜欢的妹子和别人谈笑风生,被逗笑都来不及顾及女神形象,自己就像咬了一口柠檬,好酸~~~

作为一名程序员是不可能就这样认输的,晚上回去就滋遛滋遛的敲起代码,用Python抓取糗事百科24小时最热段子!

先附上代码!!!

# 糗事百科24小时最热段子抓取

> 今天我们来利用Python爬虫技术抓取糗事百科24小时最热段子

要获取腾讯招聘网站上的招聘信息,总共需要以下三步:

1. 准备工作:安装requests、lxml模块
2. 利用谷歌浏览器抓包、分析,确定url地址,以及确定数据位置
3. 完成代码

## 一. 准备工作

> 目标:安装requests、lxml模块

### 1. 在命令行终端输入 `pip install requests`后,等待下载安装完成

- requests模块能够帮助我们发送请求获取响应

### 2. 在命令行终端输入 `pip install lxml` 后,等待下载安装完成

- lxml可以用来对html页面的数据进行提取

## 二. 利用谷歌浏览器抓包

### 1. 确定url地址

> 首页url地址 https://www.qiushibaike.com/hot/

#### 1.1 进入首页后点击下一页,观察url地址变化

![1](.\1.png)

> 发现url地址按数字递增变化

![1-2](.\1-2.png)

#### 1.2 确定最后一页的url地址

![2](.\2.png)

#### 1.3 推测并验证首页的另外的url地址

![3](.\3.png)

#### 1.4 结论

> 糗事百科24小时最热段子一共13页,url地址从1到13递增`https://www.qiushibaike.com/hot/page/{}/   # 1-13`  

### 2. 确定数据所在位置

![4](.\4.png)



- 每个段子都在id为content-left的div下子一级的div中
- 数据在该div中某个class为content的div下的第一个span标签中

### 3. 根据抓包确定代码逻辑

1. 构造url_list
2. 遍历url
   1. 对每一个url发送请求获取响应
   2. 提取数据
   3. 保存数据

## 三. 完成代码

> 创建`qiushi_spider.py`文件,完成代码如下:

import requests
import datetime
from lxml import etree

class QiushiSpider():

def __init__(self):
    self.url = 'https://www.qiushibaike.com/hot/page/{}/' # 1-13

def get_url_list(self):
    # 1. 构造url_list
    return [self.url.format(i) for i in range(1,14)]

def get_html(self, url):
    # 2.1. 发送请求获取响应
    resp = requests.get(url)
    return resp.content # 返回html_bytes

def parse_html(self, html_bytes):
    # 2.2. 提取数据
    html = etree.HTML(html_bytes)
    # 先分组,再提取
    div_list = html.xpath('//div[@id="content-left"]/div')
    item_list = [] # 保存一整页的数据
    for div in div_list:
        item = {}
        item['content'] = div.xpath('.//div[@class="content"]/span[1]/text()')[0]
        item_list.append(item)
    return item_list

def save_item(self, item_list):
    # 2.3. 保存数据
    for item in item_list:
        print(item)

def run(self):
    # 组织运行爬虫逻辑
    # 1. 构造url_list
    url_list = self.get_url_list()
    # print(url_list)
    # 2. 遍历url
    for url in url_list:
        # 1. 发送请求获取响应
        html_bytes = self.get_html(url)
        # 2. 提取数据
        item_list = self.parse_html(html_bytes)
        # 3. 保存数据
        self.save_item(item_list)

if name == 'main':
start = datetime.datetime.now()
spider = QiushiSpider()
spider.run()
end = datetime.datetime.now()
print('耗时:{}'.format(end-start))




##### 在`qiushi_spider.py`的同级路径下的终端中执行`python qiushi_spider.py`,运行代码后就可以获取段子数据

![5](.\5.png)



## 小结

> 至此,我们就可以获取糗事百科24小时最热段子了!

1. 利用谷歌浏览器抓包分析
   1. 确定url的变化规律
   2. 找到数据所在的位置
2. 完成代码
   1. 构造url_list
   2. 遍历url
      1. 对每一个url发送请求获取响应
      2. 提取数据
      3. 保存数据



> @itcast @wj14k 版权所有

后面附上关键步骤截图:

1.png
2.png 3.png 4.png 5.png

使用后续

爬取成功后,背下来了几个准备大显身手,在大家聊天的时候(女神也在场),一说段子男同事都笑了,女神没有说话,看我的眼神有些复杂啊……好奇怪,从这以后女神看我就走!!!

原创,转载请联系学姐获取授权,未经允许不得转载

推荐阅读:

什么时候投递简历成功率最高?这是一个细致活!

程序员注意了,北京西二旗程序员因为这个被捕了

Chrome强大的15款插件,第2款简直是大学生的福音

黑马教学视频——Java程序算法设计

2018年新版Java学习路线图(内含大纲+视频+工具+书籍+面试)

2018年最新Python学习路线图(内含大纲+视频+工具)

2018版Go语言+区块链学习路线图(含大纲+视频+工具+资料)

2018新版前端与移动开发学习路线图(视频+工具+书籍+资源)

image

相关文章

网友评论

      本文标题:撩妹段子必备,糗事百科24小时最热段子抓取

      本文链接:https://www.haomeiwen.com/subject/lprpeqtx.html