当前位置:文档之家› 项目六:项目实战:网络爬虫

项目六:项目实战:网络爬虫

项目八

项目实战:网络爬虫

2020年5月

CONTENTS

CONTENTS 任务一:爬取手机端数据

任务二:爬取豆瓣电影TOP250

经理:小张,Python模块中爬取网络数据的内容学习完成之后,需要你使用所学的技术爬取一些网站?

小张:爬取什么内容?

经理:爬取网站的标题、图片、路径等等!

小张:网站多种多样,爬取哪类的呢?

经理:爬取一个豆瓣电影网,还有需要练习一下手机端数据爬取。

小张:也就是爬取手机端和PC端?

经理:是的。一种是通过所学的内容直接爬取,一种借助网页分析工具。

小张:好的,保证完成任务。

小张和经理谈完话后,开始调研手机端数据采集分析软件有哪些,并决定使用fiddler软件进行手机端网页分析,除此之外分析豆瓣电影网,并把爬取的数据进行保存。本项目是练习request、urllib等模块,学习步骤为:步骤一:Fiddler抓包工具配置及使用获取手机端数据内容。

步骤二:爬取豆瓣电影TOP250网站,并保存在文本文档中。

【知识目标】

掌握Fiddler抓包工具的使用

掌握手机端数据的获取

掌握网站的分析方法

掌握网络数据的爬取流程

【技能目标】

能够使用Fiddler对网站进行抓包

能够使用Requests模块进行手机端数据的爬取

能够使用Requests模块进行豆瓣电影网数据的爬取能够把爬取的数据进行保存

使用Requests库与抓包工具(拦截查看网络数据包内容的软件)的结合实现一个APP页面内容的爬取。能够通过Fiddler抓包工具配置及使用获取APP数据内容及相关信息,之后使用Requests库相关方法通过链接地址实现APP内数据的爬取。爬取思路如下:

1.安装Fiddler抓包工具。

2.使用Fiddler抓包工具进行网站分析。

3.分析网站。

第一步:下载抓包工具。这里使用Fiddler抓包工具,点击下载按钮后,根据相关提示信息完成内容填写即可实现Fiddler下载,效果如下图所示。

第二步:Fiddler安装。双击下载好的软件安装包,之后点击“I Agree”→“Install”按钮即可安装Fiddler工具。安装完成效果如下图所示。

第三步:Fiddler工具配置。打开刚刚安装完成的Fiddler软件,效果如下图所示。

点击上图中“Tools”菜单下的“Options”按钮进入工具配置界面,效果如下图所示。

点击图中“Connections”按钮,之后进行端口号的配置,效果如下图所示。

第四步:手机配置。由于抓取的是手机APP数据,因此需要在同一局域网内进行手机网络的配置,进入手机WiFi修改界面,设置手动代理并进行主机IP和端口号的配置,效果如下图所示。

第五步:APP页面分析。配置完成后,即可使用当前手机打开需要爬取的APP,这里使用的是美团APP,页面结构如下图所示。

第六步:查看APP信息。找到需要抓取的页面后,在Fiddler抓包工具页面中会获取到当前APP请求网络的路径,点击路径后即可查看当前APP的相关信息,效果如下图所示。

第七步:代码编辑

基本配置和信息获取完成后即可进行代码的编辑,将上面获取的相关请求头信息填入代码相应的位置,之后将爬取路径放入请求方法中进行页面内容的请求,之后通过JSON信息的分析,爬取需要的页面信息,如有需要可将信息保存到本地文件,代码如下所示。# 引入Requests库

import requests

def main():

# 定义请求头

headers = {

# 将Fiddler右上方的内容填在headers中

"Accept-Charset": "UTF-8",

"Accept-Encoding": "gzip",

"User-Agent": "AiMeiTuan /OPPO -5.1.1-OPPO R11-1280x720-240-5.5.4-254-866174010228027-qqcpd",

"Connection": "Keep-Alive",

"Host": "https://www.doczj.com/doc/8717706577.html,"

}

# 循环请求数据

for i in range(0,100,15):

# 右上方有个get请求,将get后的网址赋给heros_url

heros_url = "https://www.doczj.com/doc/8717706577.html,/group/v4/deal/select/city/40/cate/1?sort=defaults&mypos=33.99958870366006%2C109.5 6854195330912&hasGroup=true&mpt_cate1=1&offset="+str(i)+"&limit=15&client=android&utm_source=qqcpd &utm_medium=android&utm_term=254&version_name=5.5.4&utm_content=866174010228027&utm_campaign =AgroupBgroupC0E0Ghomepage_category1_1__a1&ci=40&uuid=704885BFB717F2C01E511F22C00C57BCF6 7FBCCB6E51D4EE4D012C5BE0DCAFC2&msid=8661740102280271551099952848&__skck=09474a920b2f4c 8092f3aaed9cf3d218&__skts=1551100036862&__skua=4cc9b4c45a5fd84d9e60e187fabb4428&__skno=6b0f65d 3-0573-483c-a0c0-68a16fd1dda7&__skcy=ylVLNnkSr%2BWmTKUfgw%2BL6Ms21sg%3D"

# 美食的列表显示在json格式下

res = requests.get(url=heros_url, headers=headers).json()

# 打印列表

for i in res["data"]:

print(i["poi"]["name"])

print(i["poi"]["areaName"])

print(i["poi"]["avgPrice"])

print(i["poi"]["avgScore"])

print("++++++++++++++++++++++++++++++++++++=")

if __name__ == "__main__":

main();

运行代码,效果如下图所示

任务描述

本任务以豆瓣电影TOP250为目标,爬取目标中的中文电影名、年份、评分、评论人数和最热评论的信息,并将爬取得到的信息存入为本地文件,最后将排名前10的电影信息(评论人数、评分)可视化显示。实现本任务的思路如下:

1.明确爬取目标及所需要的效果。

2.根据URL爬取网页数据信息。

3.对数据进行保存。

任务步骤

第一步:打开豆瓣电影TOP250,如下图所示。

第二步:观察访问的网址,会发现豆瓣网URL为:https://https://www.doczj.com/doc/8717706577.html,/top250?start=0&filter=

然后分析豆瓣网URL的规律:

豆瓣电影TOP250网址第一页:

https://https://www.doczj.com/doc/8717706577.html,/top250?start=0&filter=

豆瓣电影TOP250网址第二页:

https://https://www.doczj.com/doc/8717706577.html,/top250?start=25&filter=

豆瓣电影TOP250网址第三页:

https://https://www.doczj.com/doc/8717706577.html,/top250?start=50&filter=

一直到第十页:https://https://www.doczj.com/doc/8717706577.html,/top250?start=225&filter=

分析后可以发现规律,豆瓣电影TOP250网址中的每页URL中“start=”后面的数值是不一样的,并且是在上次的基础上累加数值25,根据这个规律可以爬取豆瓣电影TOP250网址中所有数据信息。抓取豆瓣电影top250首页代码如下:import requests

import re

import json

headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"}

url = 'https://https://www.doczj.com/doc/8717706577.html,/top250?start=0&filter='

proxies = {

"http": "http://123.207.96.189:80"

}

response = requests.get(url, proxies = proxies,headers=headers)

text = response.text

print(text)

具体效果如下图所示:

第三步:抓取每一部电影的信息。在网页右键点击“查看网页源代码”,效果如下图所示。

相关主题
文本预览
相关文档 最新文档