数据抓取
数据集的获取是我们进行数据分析的第一步。现在获取数据的主要途径一般为:现成数据;自己写爬虫去爬取数据;使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地。
博主用的是现有的数据进行数据分析。
如果是想通过自己写爬虫来爬取数据,那么整体思路大致分为:确定爬取的内容、对主页面解析、子页面的获取、子页面的解析、数据的保存。现在的网站或多或少都有一些基本的反爬措施,那么,我们在写爬虫时就应针对该网站制定相应的反反爬策略,如请求头、IP代理、cookie限制、验证码限制等。这些常见的反爬机制要能够应用在你写的爬虫当中。
如果爬虫大致能够爬取我们所需的内容,下一步,我认为就是提高爬取速度,增加稳定性了。我们知道当request模块对页面发起请求时,整个程序是处于阻塞状态,在请求的这段时间后面的代码是无法运行的,所以说当我们需要对很多个页面发起请求时,我们可以通过使用异步协程的方式,使我们能够利用阻塞的这段时间去执行其他任务。由于requests模块是不支持异步协程的,我们需要使用aiohttp模块来对页面发起请求,再搭配asyncio来实现异步爬虫。
提高稳定性,就需要一些稳定的ip代理,防止爬虫运行期间ip被封,推荐自己爬取一些免费的ip代理的网站,通过代码测试一下,将能用的保存到数据库中,使用时直接通过类来使用即可。
数据爬取示例
以下是对酷狗飙升网爬取酷狗前十的python代码
import requests
from bs4 import BeautifulSoup
import time
# 请求头
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
}
def requests_list(url):
wb_dat