python和人工智能爬虫_Python 演示人工智能爬虫 抓取新浪微博数据

时间:2019-04-10

概述:搜索爬虫 人工智能

一个Python 人工智能爬虫演示,本代码演示抓取新浪微博数据,若正在采集新浪微博数据,如需取消请按CTRL+C 退出程序。

#!/usr/bin/python

#download by http://www.codesc.net

import requests

import MySQL

import json

import urllib

import weibobase

import sys

import time

reload(sys)

sys.setdefaultencoding('utf-8')

cookie = {"Apache": "4085444405648.557.1517558859962",

"H5_INDEX": "2",

"H5_INDEX_TITLE": "%E7%A7%8B%E5%86%AC%E6%9A%96%E8%89%B2%E7%B3%BB",

"M_WEIBOCN_PARAMS": "lfid%3D1005052109066367%252Fhome%26luicode%3D20000174%26fid%3D102803%26uicode%3D10000011",

"SCF": "AlPdz7Wu9iu_xwiWfMtd1hBGr6mZqaKtCcidCgPrDl6ocdl8HcIvA5NZpk0cm36a0xrCpnFl0ZgfV-Bc5BUAktQ.",

"SSOLoginState": "1520562809",

"SUB": "_2A253pYIoDeRhGeRP61sR9ijPzTuIHXVVaS5grDV6PUJbktAKLRLQkW1NUFPZQRFUxRYf5itrGk6VqEtGIU3izGDT",

"SUBP": "0033WrSXqPxfM725Ws9jqgMF55529P9D9W5MyLbIiX5quKaqF190KSgT5JpX5K-hUgL.Fozpeh.7Soq0SoM2dJLoIEXLxKMLBKML12zLxK-L1hqLB-eLxKqL1-2L1KqLxKnL1h.LBozLxKMLBoeLB.zt",

"SUHB": "0Elrkzb0Smx-GW",

"WEIBOCN_FROM": "1110006030",

"_T_WM": "46f8072dc2db4752c9f5f1bb610d6934",

"browser": "d2VpYm9mYXhpYW4%3D",

"h5_deviceID": "da4db009e6ae38320111cc4fbc8d1998",

}

cookie2 = {"ALF": "1522043003",

"M_WEIBOCN_PARAMS": "luicode%3D10000011%26lfid%3D102803%26fid%3D102803%26uicode%3D10000011",

"SCF": "AlPdz7Wu9iu_xwiWfMtd1hBGr6mZqaKtCcidCgPrDl6oNht3rRthMvGzFst-DncCt1l6_LYi6h6jCGNO6OtXVDU.",

"SUB": "_2A253lIvWDeRhGeRP61sR9ijPzTuIHXVVdhWerDV6PUJbktANLVTakW1NUFPZQVmJdEJdcebLE3J8mIqAPe4rxEz4",

"SUBP": "0033WrSXqPxfM725Ws9jqgMF55529P9D9W5MyLbIiX5quKaqF190KSgT5JpX5K-hUgL.Fozpeh.7Soq0SoM2dJLoIEXLxKMLBKML12zLxK-L1hqLB-eLxKqL1-2L1KqLxKnL1h.LBozLxKMLBoeLB.zt",

"SUHB": "0pHAjcQEUb1cye",

"WEIBOCN_FROM": "1110006030",

"_T_WM": "46f8072dc2db4752c9f5f1bb610d6934",

"browser": "d2VpYm9mYXhpYW4%3D",

"h5_deviceID": "da4db009e6ae38320111cc4fbc8d1998",

}

headers = {

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',

'Accept-Encoding':"gzip, deflate, br",

'Accept-Language': 'zh-CN,zh;q=0.9',

'Cache-Control': 'max-age=0',

'Connection': 'keep-alive',

'Host': 'm.weibo.cn',

'Cookie':'browser=d2VpYm9mYXhpYW4%3D; h5_deviceID=da4db009e6ae38320111cc4fbc8d1998; _T_WM=46f8072dc2db4752c9f5f1bb610d6934; ALF=1523154787; SCF=AlPdz7Wu9iu_xwiWfMtd1hBGr6mZqaKtCcidCgPrDl6ocdl8HcIvA5NZpk0cm36a0xrCpnFl0ZgfV-Bc5BUAktQ.; SUB=_2A253pYIoDeRhGeRP61sR9ijPzTuIHXVVaS5grDV6PUJbktAKLRLQkW1NUFPZQRFUxRYf5itrGk6VqEtGIU3izGDT; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5MyLbIiX5quKaqF190KSgT5JpX5K-hUgL.Fozpeh.7Soq0SoM2dJLoIEXLxKMLBKML12zLxK-L1hqLB-eLxKqL1-2L1KqLxKnL1h.LBozLxKMLBoeLB.zt; SUHB=0Elrkzb0Smx-GW; SSOLoginState=1520562809; H5_INDEX=2; H5_INDEX_TITLE=%E7%A7%8B%E5%86%AC%E6%9A%96%E8%89%B2%E7%B3%BB; WEIBOCN_FROM=1110006030; M_WEIBOCN_PARAMS=luicode%3D10000011%26lfid%3D102803%26fid%3D102803%26uicode%3D10000011',

'RA-Sid': 'B781E81A-20150402-024118-ce25e1-ba5345',

'RA-Ver': '3.0.8',

'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'

}

class GetWieBo(object):

alls_num=0;

def __init__(self):

super(GetWieBo, self).__init__()

print u'数据获取中,CTRL+C 退出程序...'

def request(self,num=0):

try:

proxies = {

"http": "http://120.79.223.130:3128",

}

url = 'https://m.weibo.cn/api/container/getIndex?containerid=102803&since_id=%s'%num

json_str = requests.get(url, cookies=cookie).content

json_base = json.loads(json_str)

except :

print "HTTPError--错误%s"

json_base=[]

time.sleep(1000)

print len(json_base["data"]["cards"])

if len(json_base["data"]["cards"])==0:

time.sleep(1000)

for cards in json_base["data"]["cards"]:

user=weibobase.wb_uset

user.avatar_hd=cards["mblog"]["user"].get("avatar_hd")# 用户头像

user.description=cards["mblog"]["user"].get("description")# 用户简介

user.screen_name=cards["mblog"]["user"].get("screen_name") # 用户名字

user.profile_url=cards["mblog"]["user"].get("profile_url") # 用户主页地址

user.followers_count=cards["mblog"]["user"].get("followers_count") # 用户粉丝数量

user.follow_count=cards["mblog"]["user"].get("follow_count") # 用户关注数量

user.id=cards["mblog"]["user"].get("id")# 用户id

mblog = weibobase.wb_mblog

mblog.id=cards["mblog"].get("id")# 微博id

mblog.scheme=cards.get("scheme") # 单条的地址

text=cards["mblog"].get("text") # 内容

mblog.text=text

mblog.created_at=cards["mblog"].get("created_at") # 内容

mblog.attitudes_count=cards["mblog"].get("attitudes_count") # 点赞

mblog.comments_count=cards["mblog"].get("comments_count") # 评论

mblog.reposts_count=cards["mblog"].get("reposts_count") # 转发

mblog.source=cards["mblog"].get("source")# 终端

mblog.obj_ext=cards["mblog"].get("obj_ext")#播放次数

if not cards["mblog"].get("pics"):

print "不是图片/没有图片"

mblog.image_urls = []

else:

mblog.image_urls=[]

for pics in cards["mblog"].get("pics"):

url=""

if not pics["large"]:

url = pics["url"]#缩略图

else:

url = pics["large"]["url"] #大图

mblog.image_urls.append(url)

if not cards["mblog"].get("page_info"):

print "不是视频"

mblog.stream_url = ""

mblog.page_url = ""

else:

if not cards["mblog"]["page_info"].get("media_info"):

print "未获取到视频地址"

mblog.stream_url=""

mblog.page_url=""

else:

mblog.stream_url = cards["mblog"]["page_info"].get("media_info").get("stream_url") # 视频地址

mblog.page_url = cards["mblog"]["page_info"].get("page_url") # 视频播放地址

MySQL.selectUset(user)

MySQL.selectMblog(mblog)

MySQL.db_cloce

### 回答1: 取微博数据是指通过爬取微博网站上的内容,获取用户在微博上发布的各种信息,包括文字、图片、视频等。爬取微博数据的方式可以使用Python编程语言中的爬虫技术来实现。 Python爬虫是一种自动获取网页内容的技术,通过模拟浏览器行为,可以获取网页上的数据。对于微博数据的爬取,可以通过Python爬取微博官方API接口或者直接爬取微博网页上的内容。 爬取微博数据需要首先进行身份认证和授权,获取访问权限。然后,可以通过API接口或者请求微博网页,获取微博网站上的数据。可以将数据保存在数据库中,或者直接进行分析和处理。 爬取到的微博数据可以用于各种目的,如数据开发、微博分析等。数据开发是指对爬取到的数据进行清洗、整理和存储,以便后续的数据分析和应用。微博分析则是对微博数据进行统计和分析,了解用户的行为和趋势,找出有价值的信息。 对于爬取的微博数据,可以通过可视化的方式呈现,以更直观地展示数据的分布和变化趋势。可视化可以使用各种Python数据可视化库,如matplotlib、seaborn等,制作各种图表、图像和地图等,提供更好的数据展示效果。 总结来说,通过Python编程语言中的爬虫技术,可以取得微博数据并进行数据开发、微博分析和可视化处理,从中获取有价值的信息。 ### 回答2: 取微博数据是指使用爬虫技术从微博平台上抓取用户的相关信息,通过获取微博的内容、点赞数、转发数、评论数等数据,并进行可视化分析以及数据开发,以了解用户行为和趋势。 在这个过程中,可以使用Python编写爬虫程序来自动化地访问微博网站并获取所需数据爬虫程序可以模拟用户登录微博,搜索关键词或用户,获取相关微博内容,并提取所需的数据信息。 通过爬取的微博数据,可以进行数据开发,包括数据清洗、处理以及存储。数据清洗是指对原始数据进行去除噪声、格式转换、去重等操作,以保证数据的准确性和一致性。数据处理是指对清洗后的数据进行加工处理,如对文字进行分词、提取关键词等。数据存储则是将处理后的数据以合适的格式保存在数据库或文件中,以备后续使用。 除了数据开发,还可以进行微博数据的可视化分析。通过使用数据可视化工具和库,将微博数据转化为图表、地图、词云等可视化形式,从而更直观地展示数据的分布和趋势。通过分析微博数据可视化结果,可以发现用户关注的热点话题、用户行为模式等信息,为企业和个人提供决策参考。 总之,通过取微博数据并进行可视化分析以及数据开发,我们可以深入了解用户行为和趋势,为企业和个人提供更有针对性的决策和推广策略。同时,这也为数据分析领域的研究和应用提供了丰富的资源和实践案例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值