Python爬取新浪微博评论
-
环境: Python3 + windows。
-
开发工具:Anaconda + Jupyter / VS Code。
-
学习效果:
-
认识爬虫 / Robots协议
-
了解浏览器开发者工具
-
动态加载页面的处理
-
手机客户端页面的数据采集
-
Robots.txt 协议
Robots协议,也称为爬虫协议
网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。Robots是一个协议,而不是一个命令。Robots.txt文件是一个文本文件,是放置在网站根目录下,使用任何一个常见的文本编辑器,就可以创建和编辑它。Robots.txt是搜索引擎中访问网站的时候要查看的第一个文件,其主要的作用就是告诉蜘蛛程序在服务器上什么文件是可以被查看的。
Robots协议是国际互联网界通行的道德规范。约定俗成。
Python代码
- 导入模块
1 import requests 2 import pandas 3 import json 4 import time
- 反爬
1 head = {\'User-Agent\':\'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0\'} 2 Cookie = {\'Cookie\':\'_T_WM=f6d406d777aafb7ed7671865d1f83799; SUB=_2A2504yPYDeRhGeNO6VMY9SvEyTuIHXVULE2QrDV6PUJbkdAKLW_YkW0b_QKWV_mSPrmPv7aZsGtGMxBDlQ..; SUHB=079ja78HU_LZCb; SCF=AmqC1lSo0254S3K0WtBQVQwXfOSQ7ivbLAOSCObPteJy5JckO3l0ZH7pSTuid_JRXlWylgjTetdZzQcModbM4A4.; H5:PWA:UID=1; M_WEIBOCN_PARAMS=featurecode%3D20000320%26oid%3D4160547165300149%26luicode%3D20000061%26lfid%3D4160547165300149; H5_INDEX=0_all; H5_INDEX_TITLE=%E6%8C%96%E6%8E%98%E6%9C%BA%E5%A4%A7%E7%8E%8B%E5%AD%90\'}
1 url = \'https://m.weibo.cn/api/comments/show?id=4160547165300149&page=2\' 2 html = requests.get(url,headers = head, cookies = Cookie) 3 ii = 1 4 while html.status_code==200: 5 ii = ii+1 6 url_next=\'https://m.weibo.cn/api/comments/show?id=4160547165300149&page=\'+str(ii) 7 8 try: 9 for jj in range(1,len(html.json()[\'data\'])): 10 data1 = [(html.json()[\'data\'][0][\'id\'], 11 html.json()[\'data\'][jj][\'user\'][\'screen_name\'], 12 html.json()[\'data\'][jj][\'created_at\'], 13 html.json()[\'data\'][jj][\'source\'], 14 html.json()[\'data\'][jj][\'user\'][\'id\'], 15 html.json()[\'data\'][jj][\'user\'][\'profile_url\'], 16 html.json()[\'data\'][jj][\'user\'][\'profile_image_url\'], 17 html.json()[\'data\'][jj][\'text\'])] 18 data2 = pandas.DataFrame(data1,columns=[\'莫名id\',\'评论者昵称\',\'评论时间\',\'手机版本\',\'用户id\',\'评论者主页\',\'评论者头像\',\'评论内容\']) 19 data2.to_csv(\'D:/Windows 7 Documents/Desktop/My/weibo2.csv\', header=False,index=False,mode=\'a+\') #写入csv文件,\'a+\'是追加模式 20 21 except: 22 23 None 24 25 time.sleep( 2 ) 26 27 html=requests.get(url_next,cookies=Cookie,headers=head)
Python发展方向
-
数据分析/数据挖掘
关联分析【啤酒与尿布】,聚类分析 ,判别分析 ,随机森林 .
-
人工智能
一种能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理等。例如AlphaGo , AlphaGo Zero.
-
Python运维
不会开发的运维终将被淘汰!!!
-
WEB开发
开发网站,例如豆瓣网。侧重于实战!!!
-
Python爬虫
采集网络数据,为数据分析或大数据等提供支持,大型的比如Google,百度等。侧重于实战!!!