模拟ajax请求爬取微博

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/9/26 10:26
# @Author  : Sa.Song
# @Desc    : 抓取崔庆才微博, 模拟ajax请求
# @File    : weiBo.py
# @Software: PyCharm

import requests
from urllib.parse import urlencode
from pyquery import PyQuery as pq
headers = {
    ‘Accept‘:‘application/json, text/plain, */*‘,
    ‘Referer‘:‘https://m.weibo.cn/u/2830678474‘,
    ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36‘,
    ‘X-Requested-With‘:‘XMLHttpRequest‘,
}
base_url = ‘https://m.weibo.cn/api/container/getIndex?‘

def get_page(page): #page是分页
    parms = {
        ‘type‘:‘uid‘,
        ‘value‘:‘2830678474‘,
        ‘containerid‘:‘1076032830678474‘,
        ‘page‘:page
    }
    url = base_url + urlencode(parms)
    try:
        response = requests.get(url=url, headers=headers)
        if response.status_code == 200:
            return response.json()
    except Exception as e:
        print(‘报错:‘, e)

def parse_message(json):
    weibo_data = []
    if json:
        items = json.get(‘data‘).get(‘cards‘)
        for item in items:
            item = item.get(‘mblog‘)
            if item == None:
                continue
            else:
                weibo_message = {}
                weibo_message[‘id‘] = item.get(‘id‘)
                weibo_message[‘text‘] = pq(item.get(‘text‘)).text()
                weibo_data.append(weibo_message)
    print(weibo_data)

if __name__ == ‘__main__‘:
    for i in range(100):
        json = get_page(i)
        parse_message(json)

原文地址:https://www.cnblogs.com/ss-py/p/9706722.html

时间: 2024-11-05 15:45:05

模拟ajax请求爬取微博的相关文章

爬虫实例 利用Ajax爬取微博数据

随着代理IP技术的普及,爬虫的使用也变得简单起来,许多企业和个人都开始用爬虫技术来抓取数据.那么今天就来分享一个爬虫实例,帮助你们更好的理解爬虫.下面我们用程序模拟Ajax请求,将我的前10页微博全部爬取下来.首先,定义一个方法来获取每次请求的结果.在请求时,page是一个可变参数,所以我们将它作为方法的参数传递进来,相关代码如下:首先,这里定义了base_url来表示请求的URL的前半部分.接下来,构造参数字典,其中type.value和containerid是固定参数,page是可变参数.接

爬虫(十):AJAX、爬取AJAX数据

1. AJAX 1.1 什么是AJAX AJAX即“Asynchronous JavaScript And XML”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的情况下,对网页的某部分进行更新(局部刷新).传统的网页(不使用AJAX)如果需要更新内容,必须重载整个网页页面. AJAX = 异步JavaScript和XML,是一种新的思想,整合之前的多种技术,用于创建快速交互式网页应用的页面开发技术. 1.2 同步和异步 同步现象:客户端发送请求到服务器端,当

Ajax数据爬取

Ajax数据爬取 简介 数据加载是异步加载,局部刷新.web开发的前后端分离通常都用Ajax交互,降低了服务器直接渲染页面带来的压力 基本原理 发送请求 解析内容 渲染网页 其实就是 向后端指定接口发送请求,返回数据,渲染页面 JS对Ajax底层的实现,实际上是新建了一个XMLHttpRequest对象 Ajax分析方法 发送的请求类型为 XHR :Request Headers 中就有一条信息为 X-Request-With:XMLHttpRequest ,这就标记了该请求为Ajax请求:返回

爬虫实例(一)——爬取微博动态

首语:开始准备认真学习爬虫了,先从基础的开始学起,比如先爬取微博的个人动态. 两个难点:获取动态加载的内容和翻页这两项操作. 对象:何炅的个人 需要的URL: 首页url:https://weibo.com/hejiong?is_search=0&visible=0&is_all=1&is_tag=0&profile_ftype=1&page=1#feedtop 我们可以直接用get方法请求该URL,但是注意要带上cookies,这样才能得到网页信息.cookies

python爬虫爬取微博评论案例详解

这篇文章主要介绍了python爬虫爬取微博评论,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 数据格式:{"name":评论人姓名,"comment_time":评论时间,"comment_info":评论内容,"comment_url":评论人的主页} 以上就是我们需要的信息. 具体操作流程: 我们首相将主页获取完成以后,我们就会发现,其中 的内容带有相

爬取微博热门话题

1 介绍 本文主要介绍爬取微博热门话题及话题下的微博.这是我毕业设计的数据来源,在这里先记录一下进展. 我买的阿里云服务器,[轻量应用服务器]预装宝塔Linux面板--三个月¥28.5.配置如下: 用起来还是很方便的,宝塔面板可视化文件上传下载,搭建web网站简便,可以定时爬虫程序.在阿里云服务器进行运行爬虫代码并连接到mysql数据库,运行环境如下: 类型 版本 服务器 CentOS Linux 7.4.1708 (Core) web服务器 Apache 2.4 数据库 mysql5.7 PY

基于nodejs模拟浏览器post请求爬取json数据

今天想爬取某网站的后台传来的数据,中间遇到了很多阻碍,花了2个小时才请求到数据,所以我在此总结了一些经验. 首先,放上我所爬取的请求地址http://api.chuchujie.com/api/?v=1.0: 下面我们开始爬取数据. 一.写一个基于nodejs的爬虫 1.引入所需模块 这里需要引入http模块(nodejs用来向浏览器发送http请求的模块)和querystring模块(把前台传过来的对象形式的参数转化成字符串形式): var http = require("http"

【python网络编程】新浪爬虫:关键词搜索爬取微博数据

上学期参加了一个大数据比赛,需要抓取大量数据,于是我从新浪微博下手,本来准备使用新浪的API的,无奈新浪并没有开放关键字搜索的API,所以只能用爬虫来获取了.幸运的是,新浪提供了一个高级搜索功能,为我们爬取数据提供了一个很好的切入点. 在查阅了一些资料,参考了一些爬虫的例子后,得到大体思路:构造URL,爬取网页,然后解析网页 具体往下看~ 登陆新浪微博,进入高级搜索,如图输入,之后发送请求会发现地址栏变为如下:    http://s.weibo.com/weibo/%25E4%25B8%25A

python 爬取微博信息

新浪微博爬取的话需要设计到登录,这里我没有模拟登录,而是使用cookie进行爬取. 获取cookie: 代码: #-*-coding:utf8-*- from bs4 import BeautifulSoup import requests import time import os import sys import random reload(sys)  sys.setdefaultencoding('utf-8') user_id = 用户id cookie = {"Cookie"