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”与日剧<我要 ...
随机推荐
- JavaScript 标准内置对象Promise使用学习总结
Javascript标准内置对象Promise使用学习总结 by:授客 QQ:1033553122 1. 基础用法 var condition = true; let p = new Prom ...
- nodejs环境使用Typeorm连接查询Oracle
首先是typeorm的官方地址, 国内有人翻了中文版,不保证时效性 ·通过npm安装下列包: typeorm //typeorm连接数据库 @types/node //类型系统 typescript ...
- Django Forms ChoiceField 选项更新问题
今天使用django的forms,发现单选后台新增数据后,前端表单选项不能刷新 class UserForm(forms.Form): name = forms.ChoiceField( choice ...
- [转]UiPath Studio Community如何连接orchestrator (Level2讲解)
本文转自:https://mp.weixin.qq.com/s/_IWsUB94nT0QwQ6t1IK0Dg https://blog.csdn.net/weixin_45000314/article ...
- Android RecyclerView SearchView基本用法1
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/82 背景: 做了很多年的app开发,貌似没见过没有搜索功能 ...
- 【安富莱】V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔(2019-11-04)
说明: 1.本教程重在BSP驱动包设计方法和HAL库的框架学习,并将HAL库里面的各种弯弯绕捋顺,从而方便我们的程序设计. 2.本次工程延续以往的代码风格,从底层BSP驱动包到应用代码,变量命名,文件 ...
- kubernetes部署高可用redis
本文redis通过helm搭建,提供redis高可用完整的编排,关于Helm的搭建和使用请查看文章<helm的搭建及使用>,其中前一章介绍了Helm搭建,并提供了Helm搭建Harbor的 ...
- 分布式的cap原理
由来 1998年的加州大学的计算机科学家 Eric Brewer 提出,分布式有三个指标. Consistency,Availability,Partition tolerance. 简称即为CAP. ...
- (四十六)c#Winform自定义控件-水波进度条-HZHControls
官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...
- C# OpenCVSharp使用SetMouseCallback设置回调方法,报错"向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。"
一.描述问题 当非托管代码调用托管应用程序的委托的时候,经常会报错“托管调试助手 "CallbackOnCollectedDelegate" Message=托管调试助手 &q ...