爬B站并保存成csv文件。提供数据
"""
b站排行榜爬虫(scrapy)
https://www.bilibili.com/ranking#!/all/0/0/7/
爬取编号,标题,url,综合评分,播放量,评论数
存储到mysql数据库
"""
import requests
from fake_useragent import FakeUserAgent
from lxml import etree
import re
import csv
url = 'https://www.bilibili.com/ranking#!/all/0/0/7/'
# 代理ip
proxies = {"http":"101.65.24.108:8118"}
headers = {
'User-Agent': FakeUserAgent().random
}
html = requests.get(url,params=proxies,headers=headers).text
# print(html)
# 构造树形结构
html1=etree.HTML(html)
"""
爬取编号,标题,url,综合评分,播放量,评论数
分析编号:
<div class="num">1</div>
<div class="num">2</div>
分析标题:
<a href="//www.bilibili.com/video/av55443085/" target="_blank" class="title">【党妹】三十变十三!毕业季必须拥有的芒果系JK妆容,成为甜甜山吹女孩!</a>
<a href="//www.bilibili.com/video/av55210171/" target="_blank" class="title">【中字.迪士尼反派系列2】后妈们的抱怨</a>
分析评分:
<div class="">2087768</div>
<div class="">1715927</div>
"""
bianhao = html1.xpath('//div[@class="num"]/text()')
print(bianhao)
titles = html1.xpath('//a[@class="title"]/text()')
print(titles)
urls = html1.xpath('//a[@class="title"]/@href')
# print(urls)
# 将url进行处理
url_list = []
for url in urls:
url = url.replace("//","").replace("/","")
url_list.append(url)
print(url_list)
grade = html1.xpath('//div[@class="pts"]/div/text()')
print(grade)
# 播放量
vv = html1.xpath('//div[@class="detail"]/span[1]/text()')
print(vv)
# 评论数
comment = html1.xpath('//div[@class="detail"]/span[2]/text()')
print(comment)
# 对数据进行处理保存成csv文件
# 使用zip函数,让数据一一对应
data_list = []
res = zip(bianhao,titles,url_list,grade,vv,comment)
for data in res:
data_list.append(data)
print(data_list)
# 打开一个csv文件
with open('../files/data/bzhan.csv','w',encoding='utf-8') as file:
csv_f = csv.writer(file)
# 添加第一行
csv_f.writerow(["id","title","url","grade","vv","comment"])
for row in data_list:
csv_f.writerow(row)
爬B站并保存成csv文件。提供数据的更多相关文章
- Selenium爬取电影网页写成csv文件
绪论 首先写这个文章的时候仅仅花了2个晚上(我是菜鸟所以很慢),自己之前略懂selenium,但是不是很懂csv,这次相当于练手了. 第一章 环境介绍 具体实验环境 系统 Windows10教育版 1 ...
- 如何能让hadoop或者spark等处理excel文件——保存成csv
工作中遇到一个表,用来筛选信息. 但是表现在是excel,为了能在spark中使用,找了下解决办法 http://stackoverflow.com/questions/4125385/java-ho ...
- 将DataTable转换成CSV文件
DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记 ...
- PHP Apache Access Log 分析工具 拆分字段成CSV文件并插入Mysql数据库分析
现在需要分析访问日志,怎么办? 比如分析D:\Servers\Apache2.2\logs\access2014-05-22.log http://my.oschina.net/cart/针对这个问题 ...
- 转换成CSV文件、Word、Excel、PDF等的方法--读取CSV文件的方法
1. 转换成CSV文件: http://www.dotnetgallery.com/lab/resource93-Export-to-CSV-file-from-Data-Table-in-Aspne ...
- tcpdump抓包并保存成cap文件
首选介绍一下tcpdump的常用参数 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接 ...
- Python爬虫小实践:寻找失踪人口,爬取失踪儿童信息并写成csv文件,方便存入数据库
前两天有人私信我,让我爬这个网站,http://bbs.baobeihuijia.com/forum-191-1.html上的失踪儿童信息,准备根据失踪儿童的失踪时的地理位置来更好的寻找失踪儿童,这种 ...
- 爬取某网站景区列表并保存为csv文件
网址:http://www.halehuo.com/jingqu.html 经过查看可以发现,该景区页面没有分页,不停的往下拉,页面会进行刷新显示后面的景区信息 通过使用浏览器调试器,发现该网站使用的 ...
- 怎样把txt文档转换成csv文件?
其实csv就是逗号隔开的一行一行的数据, 如果每行数据中都是用逗号分隔的,直接把文件后缀txt改成csv就行了. 用python搞定: import numpy as np import pandas ...
- es实战之数据导出成csv文件
从es将数据导出分两步: 查询大量数据 将数据生成文件并下载 本篇主要是将第二步,第一步在<es实战之查询大量数据>中已讲述. csv vs excel excel2003不能超过6553 ...
随机推荐
- 通过this引用成员方法-类的构造器
通过this引用成员方法 this代表当前对象,如果需要引用的方法就是当前类中的成员方法,那么可以使用"this成员方法"的格式来使用方法引用.首先是简单的函数式接口︰ 下面是一个 ...
- Java入门与进阶 P-3.5+P-3.6
计数循环 这个循环需要执行多少次? 循环停下来的时候,有没有输出到最后的0 ? 循环结束后count的值是多少 算数平方 让用户输入一系列的正整数,最后输入-1标识输入结束,然后程序计算出这些数字的平 ...
- 非线性优化-NLopt
通过 对 一个 数学 模型 的求解 来介绍 NLopt的使用方法 数学模型: 这个是目标函数 求满足 条件的情况下 x2的开平方最小 边界约束 非线性不等式约束如下 有两个参数 x1 和 x2 ,其中 ...
- mysql的双1设置是什么?
innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL磁盘写入策略以及数据安全性的关键参数.如果innodb_flush_log_at_trx_ ...
- Solon v2.2.1 发布。向 Graalvm Native 友好靠近
本次更新最重要的是增加了 Solon APT 项目,为更简单的完成 Graalvm Native 打包提供了帮助:其次是增加了 @ProxyComponent 和 @SolonMain 注解:以及优化 ...
- zint
一.Zint1. 介绍 Zint是一个软件,允许在任何广泛的公共领域条形码标准中轻松编码数据,并允许将这种功能集成到您自己的程序中. Zint项目的目标是提供一个完全跨平台的开源条形码生成解决方案,目 ...
- springboot加入cloud,并注册到nacos
pom.xml下新增 <dependency> <groupId>org.springframework.cloud</groupId> <artifactI ...
- ThreadLocal最终版本
ThreadLocal工作原理 目录 ThreadLocal工作原理 一.官方文档描述 二.为什么使用ThreadLocal 2.1.案例 三.ThreadLocal和syncronized关键字区别 ...
- Intellij IDEA 通过数据库表生成带注解的实体类Generate MyPOJOs.groovy脚本的编写
//两段代码第一个是mybatis-plus的 第二个spring-jpa的,jpa的是我复制别人的,是本体,mybatis的是我改的//idea连接数据方法见 https://www.cnblogs ...
- 2、flex最后不对齐问题
https://www.zhangxinxu.com/wordpress/2019/08/css-flex-last-align/