python3爬虫学习(4)

文章目录[x]
  1. 1:数据的分类
  2. 2:源码实现

数据提取(爬取豆瓣实例)。

总结之前先分享一个之前在网上看到的一个比较有趣的代码。就是实现下载页面的进度条

源码如下

 

import sys
import time

print("downloading:")
def view_bar(num, total):
rate = float(num) / float(total)
rate_num = int(rate * 100)
r = "\r"+("="*(2*rate_num//10)+">")+(" "*(20-2*rate_num//10))+'%d%%' % (rate_num, )
sys.stdout.write(r)
sys.stdout.flush() # 刷新缓冲区

if __name__ == '__main__':
for i in range(0, 101):
time.sleep(0.3)
view_bar(i, 100)

print("\ndownload successful\n")

 

实现的效果

数据的分类

结构化数据 json,xml等
非结构化数据 html等

 

json的定义

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。

python种可以用json中的函数使json数据类型和python数据类型之间可以相互转换

 

可以看下面一个例子

# coding=utf-8
import requests
import json
from parse_url import parse_url

headers={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"}

url = "https://m.douban.com/rexxar/api/v2/movie/suggestion?start=0&count=10&new_struct=1&with_review=1&for_mobile=1"
html_str = parse_url(url)

# json.loads把json字符串转化为python类型
ret1 = json.loads(html_str)
# print(ret1)
print(type(ret1))

with open("douban.json","w",encoding="utf-8") as f:

# json.dumps将Python类型字符串转化为就送字符串
f.write(json.dumps(ret1,ensure_ascii=False,indent=2))

下面就是得到的就送数据类型

下面看一个例子,就是爬取一下豆瓣的国产电视剧页面的内容

先抓一下包,看一下(我这里用的是360浏览器--主要因为谷歌浏览器手机模式一直无法显示)

找到数据的链接页面

然后分析网址的参数和规律(去掉一些没用的参数值)

源码实现

这里我的headers带了两个参数,因为我发现只用user-agent无法获取响应

最后看一下得到的数据

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00