Mix Publication & Project

The Deep Truth about “Fake News”

Peel back the layers of information about “fake news” and a deeper truth begins to take shape. We start to see outlines of hidden media worlds that give birth to very different communities of truth. The deep truth about “fake news” is that no one has direct access to reality. The real world is nearly […]

Mix

使用python抓取新浪微博数据

本篇文章是python爬虫系列的第四篇,介绍如何登录抓取新浪微博的信息。并对其中的关键内容进行提取和清洗。 开始前的准备工作 首先是开始之前的准备工作,与前面的文章相比,我们除了导入库文件,还把设置登录页URL,以及登录用户密码也放在了准备工作中。下面分别来说明。 导入所需的库文件,第一个是requests,用于请求和页面抓取,第二个是re正则库,用于从页面的代码中提取所需要的信息。第三个是pandas库,用来进行拼表以及数据导出。 1 2 3 4 5 6 #导入requests库(请求和页面抓取) import requests #导入正则库(从页面代码中提取信息) import re #导入pandas库(用于创建数据表和导出csv) import pandas as pd 开始抓取前,先找到新浪微博的登陆页面地址,PC端的页面内容较多,我们选择通过移动端页面登陆微博。地址是http://m.weibo.cn/,点击登陆后,跳转到登陆页面地址https://passport.weibo.cn/signin/login,这是我们要提交用户名和密码进行登陆的地址。此外还需要找到要抓取页面的URL地址。这里我们抓取“蓝鲸碎碎念”的微博首页。http://weibo.com/askcliff/home 1 2 3 4 5 6 7 8 9 #设置登陆用户名和密码 payload = { ‘username’: ‘用户名’, ‘password’: ‘密码’} #微博登陆页URL url1=’https://passport.weibo.cn/signin/login’ #微博内容抓取页URL url2=’http://weibo.com/askcliff/home’ 准备工作完成后,还需要对爬虫进行伪装,下面是具体的步骤和内容。 将爬虫伪装成浏览器 首先是设置头文件信息,里面包括浏览器的信息和字符编码以及引荐来源信息等等。这些信息的获得方法请参考本系列第三篇文章的内容。 1 2 3 4 5 6 7 8 #设置请求头文件信息 […]

Mix

使用python抓取并分析数据—人人贷(urllib)

本篇文章是使用python抓取数据的第二篇,使用urllib方法对人人贷网站贷款列表页进行抓取。并从中获取贷款用户,金额和期限的分布情况。 准备工作 首先是准备工作,导入需要使用的库文件,re用于通过正则提取数据,time用于设置Sleep时间,numpy用于数值计算,pandas用于数据汇总和分析,urllib用于数据抓取,matplotlib用于数据可视化。 1 2 3 4 5 6 7 #导入所需库文件 import re import time import numpy as np import pandas as pd import urllib.request import matplotlib.pyplot as plt 抓取列表页 开始抓取前设置列表页的URL地址,其中page-后面的部分是页码,将在后面动态生成。 url=’http://www.we.com/loan#page-‘ 设置请求的头文件信息,这部分内容可以在Chrome的开发者工具中获得,或者在网站搜索头文件信息。 1 2 3 4 5 6 7 #设置请求头文件信息 headers = {‘User-Agent’:’Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11′, ‘Accept’:’text/html;q=0.9,*/*;q=0.8′, ‘Accept-Charset’:’ISO-8859-1,utf-8;q=0.7,*;q=0.3′, […]

Mix

使用python抓取并分析京东商品评论数据

本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化。下面是要抓取的商品信息,一款女士文胸。这个商品共有红色,黑色和肤色三种颜色, 70B到90D共18个尺寸,以及超过700条的购买评论。 京东商品评论信息是由JS动态加载的,所以直接抓取商品详情页的URL并不能获得商品评论的信息。因此我们需要先找到存放商品评论信息的文件。这里我们使用Chrome浏览器里的开发者工具进行查找。 具体方法是在商品详情页点击鼠标右键,选择检查,在弹出的开发者工具界面中选择Network,设置为禁用缓存(Disable cache)和只查看JS文件。然后刷新页面。页面加载完成后向下滚动鼠标找到商品评价部分,等商品评价信息显示出来后,在下面Network界面的左侧筛选框中输入productPageComments,这时下面的加载记录中只有一条信息,这里包含的就是商品详情页的商品评论信息。点击这条信息,在右侧的Preview界面中可以看到其中包含了当前页面中的评论信息。(抓取价格信息输入prices)。 复制这条信息,并把URL地址放在浏览器中打开,里面包含了当前页的商品评论信息。这就是我们要抓取的URL地址。https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv100&productId=10001234327&score=0&sortType=5&page=0&pageSize=10 仔细观察这条URL地址可以发现,其中productId=10001234327是当前商品的商品ID。与商品详情页URL中的ID一致。而page=0是页码。如果我们要获取这个商品的所有评论,只需要更改page后面的数字即可。 在获得了商品评论的真实地址以及URL地址的规律后,我们开始使用python抓取这件商品的700+条评论信息。并对这些信息进行处理和分析。 开始前的准备工作 在开始抓取之前先要导入各种库文件,这里我们分别介绍下需要导入的每个库文件的名称以及在数据抓取和分析中的作用。requests用于进行页面抓取,time用于设置抓取过程中的Sleep时间,random用于生产随机数,这里的作用是将抓取页面的顺序打乱,re用于在抓取后的页面代码中提取需要的信息,numpy用于常规的指标计算,pandas用于进行数据汇总和透视分析,matplotlib用于绘制各站图表,jieba用于对评论内容进行分词和关键词提取。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #导入requests库(请求和页面抓取) import requests #导入time库(设置抓取Sleep时间) import time #导入random库(生成乱序随机数) import random #导入正则库(从页面代码中提取信息) import re #导入数值计算库(常规计算) import numpy as np #导入科学计算库(拼表及各种分析汇总) import pandas as pd #导入绘制图表库(数据可视化) import matplotlib.pyplot as plt […]