主要就是这三个库的安装
import requests from bs4 import BeautifulSoup import time
我是PYthon小白,自己把程序运行出来在环境配置走了不少弯路。因为我还安装了一台Windows环境,中间交叉做了其他一些事情,所以思路没有那么清晰。但是刚刚终于成功抓了数据。代码和程序运行成功截图放在最后。先说说环境配置,我会尽量回忆。我安装的是Python3.6直接在官网下载的配合我的操作系统10.11.6。一步步点击下一步成功安装。在终端用命令 which Python3.6 可以查看安装路径。这个安装然后下载了社区版的pycharm,应该也是直接安装的。
这里面最关键的就是 Project interpreter的选择,我看见很多其他博文安装了一大堆东西,还改路径改来改去,真的很麻烦。这里选择interpreter的宗旨就是选择你安装路径的那个Python3.6.终端可以查看你的安装路径。requests库和pip3,还有beatifulsoup的安装其他博文写的也挺多,还有bs4的添加我就不说了。把这些全部弄好,程序还是不能运行,还差最后一个$ pip3 install lxml bs4调用了python自带的html解析器,我用的mac,默认安装的是python2,所以内置的解释器也是在python2上,而我学习的时候又自己安装了python3,开发环境也是python3的,貌似是没有html解释器,所以会报错。
所以在python3也装一个html解析器就好了
import requests from bs4 import BeautifulSoup import time headers = { 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36' } def get_info(url): wb_data = requests.get(url,headers=headers) soup = BeautifulSoup(wb_data.text,'lxml') ranks = soup.select('span.pc_temp_num') titles = soup.select('div.pc_temp_songlist > ul > li > a') times = soup.select('span.pc_temp_tips_r > span') for rank,title,time in zip(ranks,titles,times): data = { 'rank':rank.get_text().strip(), 'singer':title.get_text().split('-')[0], 'song':title.get_text().split('-')[0], 'time':time.get_text().strip() } print(data) if __name__ == '__main__': urls = ['http://www.kugou.com/yy/rank/home/{}-8888.html'.format(str(i)) for i in range(1,24)] for url in urls: get_info(url)
time.sleep(1)
程序运行截图