爬虫,爬取景点信息采用pandas整理数据
一、首先需要导入我们的库函数
导语:通过看网上直播学习得到,如有雷同纯属巧合。
import requests#请求网页链接
import pandas as pd#建立数据模型
from bs4 import BeautifulSoup
import io
import sys#防止乱码
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
注:如有库安装不了,可参考上一篇随笔。
二、源代码:
1 import requests
import pandas as pd
from bs4 import BeautifulSoup
import io
import sys#防止乱码
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
def get_url(n):
#获取网页链接
urls=[]
for i in range(1,n+1):
urls.append('https://travel.qunar.com/p-cs299878-shanghai-jingdian-1-%s' %i)#获取n段网页链接
return urls pass def get_data(url):#获取一段网页链接的数据
r=requests.get(url)
soup=BeautifulSoup(r.text,'lxml')#lxml一种不错的编译器
ul=soup.find('ul',class_='list_item clrfix')#在网页中通过查找元素信息找到其名称
lis=ul.find_all('li')#查找所有信息
datalst=[]#定义一个数据字典
for li in lis:
dic={}#将需要查找的信息写入数据字典
dic['景点名称']=li.find('span',class_='cn_tit').text
dic['星级']=li.find('span',class_='cur_star')['style'].split(':')[1].replace('%','')#将数据中的百分号去掉实现初步数据清洗
dic['经度']=li['data-lng']
dic['纬度']=li['data-lat']
datalst.append(dic)
return datalst def get_alldata(n):#按要求查找多段网页链接的数据
alldata=[]
for url in get_url(n):
alldata.extend(get_data(url))
return alldata
#print(get_alldata(2))
df=pd.DataFrame(get_alldata(2))#建立pandas模型,按要求输出
print(df)
三、运行结果:

四、存储:
这里采用csv存储,在获取信息时写入以下代码把取得的信息写入表格中。
def get_alldata(n):
alldata=[]
for url in get_url(n):
alldata.extend(get_data(url))
alldata=[str(x) for x in alldata]
with open('describe.csv','a',encoding='utf8')as f:#在自己的运行目录下新建一个csv后缀名的文件夹然后打开以读写的方式
f.write(','.join('%s' %id for id in alldata))#为了防止数字转字符串出错首先逐个遍历我们的列表然后再写入
f.close()#操作完成应记住关闭文件夹。
return alldata
运行结果:

如上图所示数据已成功写入csv文件夹中。
小有瑕疵,初学见谅!!!
爬虫,爬取景点信息采用pandas整理数据的更多相关文章
- python爬虫爬取get请求的页面数据代码样例
废话不多说,上代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # 导包 import urllib.request import urllib.pars ...
- 用Python写爬虫爬取58同城二手交易数据
爬了14W数据,存入Mongodb,用Charts库展示统计结果,这里展示一个示意 模块1 获取分类url列表 from bs4 import BeautifulSoup import request ...
- Python爬虫爬取异步加载的数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:努力努力再努力 爬取qq音乐歌手数据接口数据 https://y.qq ...
- 养只爬虫当宠物(Node.js爬虫爬取58同城租房信息)
先上一个源代码吧. https://github.com/answershuto/Rental 欢迎指导交流. 效果图 搭建Node.js环境及启动服务 安装node以及npm,用express模块启 ...
- (转)Python网络爬虫实战:世纪佳缘爬取近6万条数据
又是一年双十一了,不知道从什么时候开始,双十一从“光棍节”变成了“双十一购物狂欢节”,最后一个属于单身狗的节日也成功被攻陷,成为了情侣们送礼物秀恩爱的节日. 翻着安静到死寂的聊天列表,我忽然惊醒,不行 ...
- MATLAB爬虫爬取股票数据
近年来,大数据盛行,有关爬虫的教程层次不穷.那么,爬虫到底是什么呢? 什么是爬虫? 百度百科是这样定义的: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种 ...
- 爬虫爬数据时,post数据乱码解决办法
最近在写一个爬虫,目标网站是:http://zx.bjmemc.com.cn/,可能是为了防止被爬取数据,它给自身数据加了密.用谷歌自带的抓包工具也不能捕获到数据.于是下了Fiddler. F ...
- 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...
- Python网络爬虫第三弹《爬取get请求的页面数据》
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...
随机推荐
- MySQL统计信息简介
作者:王小龙@网易乐得DBA 原文地址: http://mp.weixin.qq.com/s/698g5lm9CWqbU0B_p0nLMw MySQL执行SQL会经过SQL解析和查询优化的过程,解析器 ...
- JS解决所有浏览器连续输入英文字母不换行问题,包括火狐(转)
问题描述: <p style="font-size:12px;line-height:30px;">测试数据测试数据</p> p标签内如果输入一长段英文字符 ...
- Python之np.random.permutation()函数的使用
官网的解释是:Randomly permute a sequence, or return a permuted range. 即随机排列序列,或返回随机范围.我的理解就是返回一个乱序的序列.下面通过 ...
- MySQL数据库中查询表的所有列名
MySQL数据库中: 查询某个数据库中某个表的所有列名 SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ...
- 机器学习(九)-------- 聚类(Clustering) K-均值算法 K-Means
无监督学习 没有标签 聚类(Clustering) 图上的数据看起来可以分成两个分开的点集(称为簇),这就是为聚类算法. 此后我们还将提到其他类型的非监督学习算法,它们可以为我们找到其他类型的结构或者 ...
- 【UOJ#74】【UR #6】破解密码
[UOJ#74][UR #6]破解密码 题面 UOJ 题解 发现这个过程是一个字符串哈希的过程. 把第一位单独拿出来考虑,假设这个串是\(p+S\),旋转后变成了\(S+p\). 其哈希值分别是:\( ...
- Java 函数式编程—@FunctionalInterface----functional interface
单一函数接口,可以使用拉姆达表达式的形式具体化和实例化. 本质是将接口函数签名化. 如定义了一个函数式接口如下: @FunctionalInterface interface GreetingServ ...
- IIS 503错误解决办法 HTTP Error 503
今天在win7上部署一个IIS网站,莫名出现HTTP Error 503,于是对比了一下之前的网站配置,依然无果. 无奈之下,挨个查看IIS配置.查看“事件查看器”,尝试修改应用程序池 - 高级设置 ...
- Python - 时间相关与计划任务
Python - 时间处理与定时任务 1.计算明天和昨天的日期 # 获取今天.昨天和明天的日期 # 引入datetime模块 import datetime #计算今天的时间 today = date ...
- 蜂鸟E203 IFU模块
E203的IFU(instruction fetch unit)模块主要功能和接口如下: IFU的PC生成单元产生下一条指令的PC. 该PC传输到地址判断和ICB生成单元,就是根据PC值产生相应读指请 ...