网络爬虫爬取热榜信息

先上程序(爬取百度热榜)

'百度热榜爬虫'
import requests
from lxml import etree
import os
if __name__ =='__main__':
    header = {
       'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4442.4 Safari/537.36'
    }
    url = 'https://tophub.today/'
    page_text = requests.get(url=url,headers=header).text
    etree = etree.HTML(page_text)
    list_page = etree.xpath('//*[@id="node-2"]/div/div[2]/div[1]/a')
    i=1
    fp = open('百度热榜.txt', 'w', encoding='utf8')
    print("****百度热榜****")
    for li in list_page:
        title = li.xpath('./div/span[2]/text()')[0]
        hot_degree = li.xpath('./div/span[3]/text()')[0]
        print(i,title,"点击量:"+hot_degree)
        fp.write(str(i)+','+str(title)+'  点击量:'+str(hot_degree) + '   04-27'+'\n')
        i = i + 1

再来上程序(爬取微博热榜)

import requests
from lxml import etree
if __name__ =='__main__':
    header = {
       'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4442.4 Safari/537.36'
    }
    url = 'https://tophub.today/'
    page_text = requests.get(url=url,headers=header).text
    etree = etree.HTML(page_text)
    list_page = etree.xpath('//*[@id="node-1"]/div/div[2]/div[1]/a')
    i=1
    fp = open('微博热榜.txt', 'w', encoding='utf8')
    for a in list_page:
        title = a.xpath('./div/span[2]/text()')[0]
        # print(title)
        hot_degree = a.xpath('./div/span[3]/text()')[0]
        #print(hot_degree)
        print(i,title,"点击量:"+hot_degree)
        fp.write(str(i)+','+str(title)+'  点击量:'+str(hot_degree) + '   04-27'+'\n')
        i=i+1

首先确定目标网站
https://tophub.today/
在这里插入图片描述
然后F12审查元素,发现我们需要定位的标签
最后再把爬取热榜信息输出到txt文本文件中。

在这里插入图片描述

Python爬虫可以用来抓取网页数据,例如网易云音乐的热歌榜信息。通常,这类任务需要利用一些库如requests获取网页内容,BeautifulSoup解析HTML,以及可能的话,Pandas来处理和存储数据。 以下是一个简单的步骤概述: 1. **安装必要的库**:首先确保已经安装了`requests`, `beautifulsoup4` 和 `lxml` 或 `html5lib` 等库,如果没有安装,可以用pip安装: ``` pip install requests beautifulsoup4 lxml ``` 2. **发送HTTP请求**:使用requests.get()函数向网易云音乐的热歌榜URL发送GET请求,并获取返回的HTML响应。 3. **解析页面**:使用BeautifulSoup解析HTML文档,找到包含热歌榜数据的部分。比如,歌名、歌手等信息通常在特定的CSS选择器下。 ```python import requests from bs4 import BeautifulSoup url = "https://music.163.com/#/hot" response = requests.get(url) soup = BeautifulSoup(response.text, 'lxml') ``` 4. **提取数据**:查找并提取出你需要的数据,如song_list = soup.find_all('div', class_='f-hide'),这里假设歌曲列表是在CSS类为"f-hide"的元素里。 5. **遍历和保存数据**:对找到的数据进行循环,根据实际结构提取每个歌曲的信息,然后将其添加到一个字典、列表或其他数据结构中。 ```python songs = [] for song in song_list: title = song.find('span', class_='title').text.strip() artist = song.find('a', class_='s-fc7').text.strip() songs.append({'title': title, 'artist': artist}) # 可能还需要进一步处理,如存储到CSV或数据库中 ``` 6. **异常处理**:确保对可能出现的网络错误或解析错误进行适当的处理,避免程序中断。 注意:在实际操作中,网站可能会有反爬虫策略,频繁请求可能导致IP被封禁。因此,在编写爬虫时应遵守网站的robots.txt协议,并尽可能模拟人类访问行为。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你们卷的我睡不着QAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值