Python爬虫大作业
一、题目:
获取并保存目标网站的下图所示的所有英文名,网页转换通过点击more names刷新名字并将各个英文名子目录下,去获取并保存每一个英文名的名字、性别、寓意、简介如下图所示内容红色标记框内的内容:
二、爬取步骤:
1.数据服务
爬取步骤:
(1)爬取整个动态网页信息内容;
(2)解析网页内容,利用正则表达式获取有效信息;
(3)把爬取下来的信息采用csv进行存储;
(4)进行必要的手动的数据清理和美化。
2.解析服务
解析步骤:
(1)利用headers直接访问网页内容;
(2)爬取页面信息;
(3)解析页面;
(4)形成text数据。
(5)实时获得网站的英文名、性别、寓意、简介等内容。
流程图:
三、源代码:
按步骤要求一步一步将数据爬取并保存。
import requests#请求库
import re#表达式解析库
import csv
def html_save(s):#爬取内容保存函数
with open('save3.csv','a', newline='')as f:#以追加的方式存数据newline控制文本模式之下,一行的结束字符
writer = csv.writer(f)#将数据写入csv文件
writer.writerow(s) def get_url(n):#保存网址
urls=[]
for i in range(1,101):#测试得出网址范围
urls.append('http://www.nymbler.com/nymbler/more/%s'%i)
return urls
pass def get_detail(url):#对网页内容进行解析获取
headers = {'Cookie':"heroku-session-affinity=AECDaANoA24IAaj0sYj+//8HYgAH2hNiAAsB42EDbAAAAANtAAAABXdlYi4zbQAAAAV3ZWIuMm0AAAAFd2ViLjFqTiF9lGfQyz4HBcluZEIivsLibgo_; PLAY_SESSION=e625836109d6e09af14be41657c35e808ca31e72-session_id=240bcff7-ebb5-49ee-8fa4-ffcc5ba32e48; _ga=GA1.2.408125030.1575511582; _gid=GA1.2.1377013858.1575511582; td_cookie=18446744071831041204; _gat_gtag_UA_1763772_1=1"}#反爬虫请求头
response = requests.post(url)#解析网页
docx=(response.text)#得到解析文本
name=re.findall(r'"name":"([^"]+)"',docx)#正则匹配name的value
gender=re.findall(r'"gender":"([^"]+)"',docx) #正则匹配gender的value
info=re.findall(r'"info":"([^"]+)"',docx)
meaning=re.findall(r'"meaning":"([^"]+)"',docx)
for i in range(len(meaning)):#将获取的信息进行有序处理
tmp=[]
tmp.append(name[i])
tmp.append(gender[i])
tmp.append(meaning[i])
tmp.append(info[i])
html_save(tmp)#对信息进行保存
return tmp
pass def get_all(n):#获取所有网页的信息
alldata=[]
for url in get_url(n):
alldata.extend(get_detail(url))#将get_url(n)内的所有网页一一进行解析保存
return alldata
pass get_all(100)#函数调用
四、运行结果:
部分结果展示:
Python爬虫大作业的更多相关文章
- 在我的新书里,尝试着用股票案例讲述Python爬虫大数据可视化等知识
我的新书,<基于股票大数据分析的Python入门实战>,预计将于2019年底在清华出版社出版. 如果大家对大数据分析有兴趣,又想学习Python,这本书是一本不错的选择.从知识体系上来看, ...
- python ATM大作业之alex思路
一 ATM alex想了一个思路,就是定义一个函数,这个函数可以实现所有的atm的功能:取款,转账,消费等等. 为了实现这个想法,alex构建了一个两级字典,厉害了.我发现,厉害的人都喜欢用字典.这里 ...
- python之大作业
一.题目要求 获得网页中A-Z所有名字并且爬取名字详情页中的信息,如姓名,性别,,说明等,并存放到csv中(网址:http://www.thinkbabynames.com/start/0/A) 现在 ...
- Hadoop综合大作业
Hadoop综合大作业 要求: 用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计. 用Hive对爬虫大作业产生的csv文件进行数据分析 1. 用Hive对爬虫大作业产 ...
- 【大数据应用技术】作业十二|Hadoop综合大作业
本次作业的要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 前言 本次作业是在<爬虫大作业>的基础上进行的 ...
- 作业——12 hadoop大作业
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 Hadoop综合大作业 1.以下是爬虫大作业产生的csv文件 ...
- 大数据应用期末总评——Hadoop综合大作业
作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 Hadoop综合大作业 要求: 1.将爬虫大作业产生的csv文件 ...
- 【大数据应用期末总评】Hadoop综合大作业
作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 一.Hadoop综合大作业 要求: 1.将爬虫大作业产生的csv ...
- 《Hadoop综合大作业》
作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 我主要的爬取内容是关于热门微博文章“996”与日剧<我要 ...
随机推荐
- MySQL 重置Mysql root用户账号密码
重置Mysql root用户账号密码 By:授客 QQ:1033553122 问题描述: 使用mysqladmin.exe执行命令时出现以下错误提示: mysqladmin: connect to ...
- reports buileder 触发器的写法
触发器写法: function CF_SHOULD_BACK_TIMEFormula return Number is--其他:取MES工时按工段分别统计产量.投入工时合计:应回报工时=移动数量*[∑ ...
- arcgis api for javascript 学习(一) 调用在线发布的动态地图
1.图中显示为arcgis软件中显示的地图文件 2.调用动态地图主要的是知道动态地图的URL地址 3.通过IDE(webstorm)调用动态地图,如图 4.话不多说,直接上代码 <!DOCTYP ...
- 更新阿里yum源并重建缓存
[第一种方式]1.下载安装wget /如果没有装的话yum install -y wget 2.备份默认的yummv /etc/yum.repos.d /etc/yum.repos.d.backup ...
- MySQL数据库:函数的应用
字符串截取 # 从左边开始 第1个字符 left(字段名,1) # 从那里开始,截取几个 substring(字段名,1,1) str函数 # 连接字符串 concat(s1,s2,s3,--,sn) ...
- 10. 函数-lambda函数及高阶函数
一.匿名函数解析 关键字lambda表示匿名函数,冒号前面的n表示函数参数,可以有多个参数.匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. 用匿名函数有 ...
- MongoDB学习笔记(七、MongoDB总结)
1.为什么要NoSQL:nosql能解决sql中那些解决不了的问题 NoSQL是什么:Not Only SQL,本质上还是数据库,但它不会遵循传统数据库的规则(如:SQL标准.ACID属性[事务].表 ...
- Windows10安装ubuntu18.04双系统教程
写在前面:本教程为windows10安装ubuntu18.04(64位)双系统教程,是我多次安装双系统的经验总结,安装方法同样适用于ubuntu16.04(64位).为了直观和易于理解,我会尽量图文并 ...
- IT兄弟连 HTML5教程 多媒体应用 小结及习题
小结 在互联网上,图像和链接则是通过URL唯一确定信息资源的位置.URL分为绝对URL和相对URL.通过使用<img />标记在浏览器中显示一张图像.超文本具有的链接能力,可层层链接相关文 ...
- linux命令-压缩与打包
在 Linux 中可以识别的常见压缩格式有十几种,比如".zip"" .gz"" .bz2" ".tar" " ...