爬虫小项目爬取有神话色彩的星座运势,拯救不开心

Posted yunyun云芸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫小项目爬取有神话色彩的星座运势,拯救不开心相关的知识,希望对你有一定的参考价值。

相信十二星座我们都不陌生,每一个人出生的时间与十二星座都有密切的关系,在每个等份时间内时所出生的婴儿,就定为这个星座,这与我们中华民族的十二生肖挺相似,这12星座每一个都带有神话的色彩,每一个星座有不同的性格代表与运势等,那么今天这个小项目就来爬取星座的运势。

1.网页爬虫

import requests
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np 
import matplotlib.pyplot as plt
import matplotlib.style as psl
psl.use('ggplot')

import warnings

# 不发出警告
warnings.filterwarnings('ignore') 
print('库导入完成!')

库导入完成!

2、历史星座数据采集 — 网址制作

首先导入爬取的星座名称 和 日期名称, 该名称可用于网页url合成。

xz_lst = ['leo','libra','scorpio','aquarius','taurus','gemini',
    'cancer','virgo','sagittarius','capricorn','pisces','aries']

date_lst = ['20190101', '20190102', '20190103', '20190104', 
'20190105', '20190106', '20190107', '20190108', '20190109', 
'20190110', '20190111', '20190112', '20190113', '20190114', 
'20190115', '20190116', '20190117', '20190118', '20190119', 
'20190120', '20190121', '20190122', '20190123', '20190124', 
'20190125', '20190126', '20190127', '20190128', '20190129', 
'20190130', '20190131', '20190201', '20190202', '20190203', 
'20190204', '20190205', '20190206', '20190207', '20190208', 
'20190209', '20190210', '20190211', '20190212', '20190213', 
'20190214', '20190215', '20190216', '20190217', '20190218', 
'20190219', '20190220', '20190221', '20190222', '20190223', 
'20190224', '20190225', '20190226', '20190227', '20190228', 
'20190301', '20190302', '20190303', '20190304', '20190305', 
'20190306', '20190307', '20190308', '20190309', '20190310', 
'20190311', '20190312', '20190313', '20190314', '20190315', 
'20190316', '20190317', '20190318', '20190319', '20190320',
'20190321', '20190322', '20190323', '20190324', '20190325']

3.网址合成

url_lst = []
for i in xz_lst:
    for j in date_lst:
        #通过[2]中的两个列表合成网址
        url_lst.append('http://www.xzw.com/fortune/' + i + '/' + j + '.html')  
# url_lst

4.网页数据采集

从每个网址中,选择关键词。 该步操作,需要对网页的源码进行分析,发现几组特征之间的分析特点,然后使用split函数对文字进行切分,选择合适的关键词。

def get_data(ui):
    ri = requests.get(url = ui)   # 访问页面
    soupi = BeautifulSoup(ri.text, 'lxml')  # 解析页面
    dic = {}
    dic['标题'] = soupi.find('h4').text
        # 获取标题信息
    infor1 = soupi.find('div',class_="c_main").find('ul').find_all('li')
    dic[infor1[0].text] = infor1[0].find('em')['style'].split(':')[1].split('p')[0]
    dic[infor1[1].text] = infor1[1].find('em')['style'].split(':')[1].split('p')[0]
    dic[infor1[2].text] = infor1[2].find('em')['style'].split(':')[1].split('p')[0]
    dic[infor1[3].text] = infor1[3].find('em')['style'].split(':')[1].split('p')[0]
    dic[infor1[4].find('label').text] = infor1[4].text.split(':')[1]
    dic[infor1[5].find('label').text] = infor1[5].text.split(':')[1]
    dic[infor1[6].find('label').text] = infor1[6].text.split(':')[1]
    dic[infor1[7].find('label').text] = infor1[7].text.split(':')[1]
    dic[infor1[8].find('label').text] = infor1[8].text.split(':')[1]
    dic[infor1[9].find('label').text] = infor1[9].text.split(':')[1]
        # 获取运势等信息
    infor2 = soupi.find('div',class_="c_cont").find_all('p')
    dic['综合运势文字'] = infor2[0].find('span').text
    dic['爱情运势文字'] = infor2[1].find('span').text
    dic['事业学业文字'] = infor2[2].find('span').text
    dic['财富运势文字'] = infor2[3].find('span').text
    dic['健康运势文字'] = infor2[4].find('span').text
        # 获取运势文字信息
    return dic
print('函数构建完成!')

函数构建完成!

data_lst = []
n = 0
for u in url_lst:
    try:
        # 批量采集数据
        data_lst.append(get_data(u))
        n += 1
        if n%100 ==0 :
            print('成功采集%i条数据' % n)
    except:
        continue
# 将数据转换成 pandas格式
df_result = pd.DataFrame(data_lst)
成功采集100条数据
成功采集200条数据
成功采集300条数据
成功采集400条数据
成功采集500条数据
成功采集600条数据
成功采集700条数据
成功采集800条数据
成功采集900条数据
成功采集1000条数据
df_result.head()

5.效果图:


番外篇:白羊座的来历

在一个古老的遥远国度中,国王和皇后因性格不和而离婚,并再取了另一名
女子,可惜这位新皇后天生善于嫉妒,无法忍受国王对前妻所留下的一双子女的
百般疼爱,于是邪恶的阴谋逐渐在她脑中成形。
春天来临,又到了播种耕种的季节,新皇后将炒熟了的麦子,发送给全国不
知情的农夫。已经熟透了的麦子,无论怎样浇水、施肥,当然都无法发出芽来。
被蒙在鼓里的农夫,百思不得其解。
新皇后就在此时,散播有关麦子的摇言,指称麦子之所以无法发芽,是因为
这个国家受到了诅咒,而受到诅咒全都是因为王子和公主的邪恶念头,引起了天
怒,导致天神对国家的处罚。
个性淳朴的农民们一听,天啊!这还得了!因为邪恶的王子和公主,全国的
人民都将陷於贫穷饥饿的深渊中,这是一件多么可怕的事啊!
很快地,全国各地不论男女、老少,都一致要求国王一定要将王子与公主处
死,国家才能解开这个诅咒,平息天怒,人民的幸苦耕种才会有收获,国家也才
能回复过去的安定富足。
国王虽心有不舍,但为了平息众怒,只好无奈地答应了人们的要求,准备将
公主与王子处死,以换得人民的信任。这个消息传到了王子公主的生母耳中,当
然是又惊又怕,赶紧向伟大的天神——宙斯求助。宙斯当然知道是皇后搞的鬼,
于是就答应帮忙。在行刑的当天,天空突然出现一支有着金色长毛的公羊,将王
子兄妹救走,就在飞行以过大海的途中,这支公羊一个不小心,让妹妹摔下海中
死掉了。
后来宙斯为了奖励这支勇敢但又有些粗心的公羊,就将他高挂在天上,也就
是今天大家所熟知的白羊座

到这里结束了,感谢观看,我是一名喜欢分享的程序员,更多Python精彩内容可以关注小编看小编主页+私信云芸共享入门Python资源。

以上是关于爬虫小项目爬取有神话色彩的星座运势,拯救不开心的主要内容,如果未能解决你的问题,请参考以下文章

HarmonyOS JS卡片之“星座运势”卡片开发

❤️Android Studio实现一个星座配对APP❤️

星座运势

星座运势

星座运势下拉

Python小爬虫:爬取开心网日记,乐趣无穷