music-163
music-163 copied to clipboard
About artists.py
有一个问题,亲!在artists.py中: params = {'id':group_id, 'initial':initial},这两个参数是做什么的? 还有你的headers定义了为什么没有在requests当中使用? 我的body有问题,导致后面的hot_artists和artist都是空值。 我换了好几个requests(url)中的URL,结果返回的soup还是有问题。应该还是上面两个params我没理解到是什么意思而导致后面错误。
这个连接本地或者远程MySQL是要提前把sql.py中的表先建好吗?
- 你可以查看一下这个链接:http://music.163.com/#/discover/artist/cat?id=2002&initial=68 ,id和initial参数对应了歌手的分类,使用这两个参数可以遍历出所有的歌手;因为id是Python的内置关键字,所以我选择使用group_id作为变量名;
- header没使用应该是我定义了之后发现不使用header也可以正常请求,所以就没有使用;
- 没看懂什么意思;
- 理解了这两个参数再看看呢?
- 需要先建好数据库的,数据库的表格式看插入语句可以很容易的参测出来;
理解了你的意思,但数据库里面什么也没有。 我单独输出hot_artists和artist也都是空值。 我看了一下body的输出好像也没有hot_artists和artist这两者的html tag在里面,find_all应该是无效了。
爬去的soup里面的内容呢直接浏览的内容不一样,如http://music.163.com/#/discover/artist/cat?id=2002&initial=68 。直接在这个页面上面如 “周杰伦”右键检查可以看到tag属性,“<a href=" /artist?id=6452" class="nm nm-icn f-thide s-fc0" title="周杰伦的音乐">周杰伦</a>“,
“周杰伦“,但是爬去下来的soup找不到"class":"nm
nm-icn f-thide s-fc0",也就是说没有这些歌手的数据。
是不是被网易禁止了? 感谢了! 看了一下,还像是param加密了,知乎上面看到的encrypted。
@Zhang21 是不是frame的问题,右键检查”周杰伦“属性会发现,他在源码html的iframe层里面,需要用selenium的 driver.switch_to.frame(driver.find_element_by_xpath("//iframe"))才行,之后再用bs解析就行了
这个xpath定位不到是因为有大量的js渲染吗?bs可以获取能理解为bs可以解析渲染/动态网页吗?