python爬虫(1):从入门到放弃,重新入门

背景

上学期学python学到一半迷上了爬虫强大的功能,从urllib开始入门,学习request、正则表达式、Xpath,中间用urllib爬了k站的一些图片。urllib请求和下载速度太慢了,数据处理也比较麻烦,所以去学速度更快,更强大的的scrapy。
在这里插入图片描述
scrapy真的好难啊(哭),至今回想起那段噩梦还后怕,爬k站时爬虫直接被禁,因为是代码问题检查了一遍又一遍,用了好多隐藏的方法都没用,当时就很怀疑人生,差点去学了selenium,最后还是放弃了。
在这里插入图片描述
今天在b站上发现个不错的爬虫视频教程,心动之下又开始学爬虫了哈哈哈,立个flag,这次要一次过!


正文

看了5天视频,其中也跟着视频做了小爬虫,比如贴吧爬虫,有道翻译爬虫,才学了几天就能做出这些很有意思的东西,开心。
之后我写了两个自己喜欢的爬虫程序

  • b站著名up主老番茄的所有的视频信息,用播放次数排出top10的视频
  • 分类爬取网易云音乐所有歌单的信息

老番茄爬虫

老番茄是我最喜欢的b站up主,爬一爬他的视频,发现了不少好玩的东西。
先开始去踩点,或者说抓包,用chrome的审查工具找到response中有我们想要的页面内容的network中的内容。如图,我发现response是json的字典型字符串(庆幸),直接用json.loads转化为python的字典,就可以通过键和值提取了。

寻找数据的方法

  • 一般来说数据就在刷新网页时的前几个响应中 ,从network中一个一个往下找(忽略jpg,css,png,js,gif类型)
  • 用search寻找页面上我们想要的数据中的数字和英文(汉字可能被编码)
    在这里插入图片描述

写代码,用面向对象的编程方法,定义一个QieJiang(茄酱)类,这里的parse_url方法是自己写的,作用和request.get()一样。

#第一行向老番茄致敬!

import requests
import re
from parse_url import parse_url
import json
class Qiejiang_spider():
	def __init__(self):
		self.temp_url = "https://space.bilibili.com/ajax/member/getSubmitVideos?mid=546195&pagesize=30&tid=0&page={}&keyword=&order=pubdate"

	def get_useful_content(self,html_str):
		video_info = {
   
   }
		html_list = json.loads(html_str)
		for i in html_list['data']["vlist"]:
			video_info[i['title']] = i['play']

		return video_info

	def print_top10(self,video_info):
		sorted_info = sorted(video_info.items(),key = lambda item:item[1],reverse = True)
		#这里懒得发送请求了,直接找到数据手动打印了
		print('截至2019/8/21,12:08,老番茄共265个视频,其中音乐区1个,游戏区241个,鬼畜区1个,生活区21个,影视区1个'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值