爬虫一下子入门


# 第一次尝试爬虫#
# 爬取B站上的热门视频版#

import sys
from bs4 import BeautifulSoup
import csv
import requests  # requests库是一个常用的用于http请求HTML的模块#
import datetime

url = 'https://www.bilibili.com/ranking' #爬取内容所在的网址#
response = requests.get(url)             #requests.get( )是requests模块最常用的功能,返回response对像#
                                         #response.status_code 属性	http请求的返回状态,若为200则表示请求成功#
                                         #response.text	属性 html内容以字符串形式返回#

if response.status_code != 200:          #判断网页请求是否成功#
    print('网页请求失败')
    sys.exit()                           #不成功直接退出#

                                         #HTML由一堆堆标签、及相应标签属性构成#
                                         #HTML里有大大小小很多歌标签,通过标签名+属性来寻找所需标签#

soup = BeautifulSoup(response.text,'html.parser')


items = soup.findAll('li',{'class':'rank-item'})
                                         #将name为li,同时以class=rank-item为attribute的tag全部找出,由item指向#
                                         #寻找自己所需的tag是自己从url中获得#
now_time = datetime.datetime.now().strftime('%Y%m%d')
                                         #获取当前时间,并依=以年月日的格式输出#
file_name = f'bilibili_top100_{now_time}.csv'
                                         #写入文件,选择常见的CSV文件格式#
                                         #f+str为变量形式的字符串#
                                         #大多时候,我们需要每天爬取一次,故加入时间#
with open(file_name,'w',newline='',encoding='utf-8-sig') as f:
                                         #newline=‘’,换行符为空格,encoding为编码方式#
    w = csv.writer(f)
    w.writerow(['title','url'])          #写入第一行,各列名字#
    for itm in items:
        title = itm.find('a', {'class': 'title'}).text
        item_url = itm.find('a', {'class': 'title'}).get('href')
                                         # 找到榜单里的全部视频的title,及url#
                                         # 对于一个tag的attribute可用get()来换取其中内容#
        w.writerow([[title],[item_url]])
                                         #将title与item_url写入#
                                         #用【title】是为了防止乱码及item_url散开#




``

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值