美文网首页
Python学习笔记

Python学习笔记

作者: 叶赛文 | 来源:发表于2018-12-18 20:55 被阅读23次
image.png
image.png
image.png
image.png

2019-1-5

1. 什么时候在HTML里面找需要爬取的内容,什么时候在XHR里面找?

先打开网页HTML源码,看里面有没有数据;如果没有,那么就在XHR里面找

2. 如何在XHR 里面找到数据?

找到size,然后按照大小排列。 因为是传输数据,里面的内容肯定多,所以应该排在前面。

image.png
3. 写出了代码,一下子把李宗盛的一百首歌曲,都能爬下来。开心。

同时,也收获了一种解决问题的方式:把问题细分到最小。
如果一下子让写爬李宗盛的100首歌曲,感觉头大了。 可以细分,先实现爬取一页,然后再实现爬取10页。

import requests,json

for i in range(1,6):
    url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=67405590478770516&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=' + str(i) + '&n=20&w=%E6%9D%8E%E5%AE%97%E7%9B%9B&g_tk=385283523&loginUin=3002439522&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0'
    #print(url)
    res = requests.get(url)
    jsonres = json.loads(res.text)
    music = jsonres['data']['song']['list']

    for x in music:
        print('歌曲名:' + x['name'])
        print('专辑名:' + x['album']['name'])
        print('播放时长' + str(x['interval']) + '秒')
        print('播放链接:https://y.qq.com/n/yqq/song/' + x['mid'] +'.html\n\n' )
5. 对于Python新手,最难的地方及解决方法

最难的莫过于,边学边忘。昨天刚学,今天就忘了。
解决对策:任何技能,都和练武术一个道理:基本功要反复的练习,直至形成肌肉记忆。这样,真正和人打的时候,不用想下一步用哪招,是本能的做出决定。
迁移到学Python小课上,课堂上所讲的内容,就是基本功,要反复练习。这些是最基本的东西。把这些熟练掌握后,才能融会贯通。

2018-12-30

问题1.[Errno 22] Invalid argument: '<sanguoyanyi>.txt'

image.png

问题解决:不能用<>去命名文件。 修改成《》或是不用符号就可以了。
出现问题的原因:很可能是路径的问题。


2018-12-25

1. getText()

作用:取出标签里的文本

image.png
用法:
#example
print(link[0].getText())

2018-12-22

1. pyperclip.copy() and pyperclip.paste()

作用: pyperclip.copy(): 把括号里的东西,复制到剪切板;
pyperclip.paste():把剪切板的东西,复制下来,赋值给变量
用法:

import pyperclip
pyperclip.copy()
name = pyperclip.paste()

2.用os模块打开迅雷

水形物语

import os

downUrl='thunder://QUFlZDJrOi8vfGZpbGV8TGF3LkFiaWRpbmcuQ2l0aXplbi4yMDA5LuWuiOazleWFrOawkS7lj4zor63lrZfluZUuSFItSERUVi5BQzMuMTAyNHg1NzYueDI2NC5ta3Z8MTkzNjMyNjEwM3wyMjk1ODQ1MjlCRDQ2NUZDQjUxOEFFQjY0NTE4QjQxNXxoPUMyWEpLRk0yQ1BORkZESDJHT1NQNEk3WEQ2V09RNzREfC9aWg=='
os.system("\"C:\Program Files\Thunder Network\Thunder\Program\ThunderStart.exe\" -StartType:DesktopIcon %s"%downUrl)

2018-12-21

1.报错:'method' object is not subscriptable

image.png
解法:
第九行出现了2个错误:1.get后面是圆括号 2.“+”号前后要有空格
正确写法:
finallink = 'https://www.ygdy8.com' + link[0].get('href')

2. 报错:'str' object has no attribute 'text'

image.png

原因:因为前面的已经把编码解码成gbk了,所以,下一步不需要再用text

3. requests.content 和 text的区别

content 获取的是二进制值,可用于图片,音频,文件等
text 获取的是文本,Unicode。
python requests的content和text方法的区别


2018-12-18

第19关 美味的汤(下)——BeautifulSoup模块(下)

1. bs4 是什么东东?

bs4 全称是 BeautifuSoup, 4是指第四个版本
作用:解析网页,在网页中获取想要的数据
用法:import bs4

2. urllib是什么?

urllib是Python自带的一个标准库,无需安装
作用:向服务器提请求。经常使用的是request
用法: from urllib.request import quote

3.gbk 是什么东东?

是一种字符编码的格式。

  1. ASCII 编码,最初由美国人创立的数据编码格式,不支持中文;
    2.GBK 和GB2312: 支持了中文,GBK是GBK2312的升级版。目前有部分中文网站是gbk编码。
    3.Unicode:占用空间大,实用性强。

3.quote()是什么东东?

在标准的URL中,只能使用部分ASCII字符,不允许使用中文字符。
作用:那么在使用爬虫的时候,用这个命令把文本变成url接受的字符
用法:

urlmovie = 'http://s.ygdy8.com/plus/so.php?kwtype=0&searchtype=title&keyword='+quote(gbkmovie)

4. 代码gbkmovie=movie.encode('gbk')为什么要改变成gbk,而不是utf-8

因为阳光电影这个网站是用gb2312编码的,所有要把编码变成这个网站支持的方式。
如果爬百度,它的编码是utf-8,那么需要把编码转换成utf-8

5.gbk 和 utf-8有什么优劣?

utf-8 国际编码,通用性好;gbk 国家编码,通用性差,但对中文的支持更友好。
参考:网页编码GBK和UTF-8有什么区别?到底哪个好?

相关文章

网友评论

      本文标题:Python学习笔记

      本文链接:https://www.haomeiwen.com/subject/muqrkqtx.html