一、首先需要导入我们的库函数

导语:通过看网上直播学习得到,如有雷同纯属巧合。

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整理数据的更多相关文章

  1. python爬虫爬取get请求的页面数据代码样例

    废话不多说,上代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # 导包 import urllib.request import urllib.pars ...

  2. 用Python写爬虫爬取58同城二手交易数据

    爬了14W数据,存入Mongodb,用Charts库展示统计结果,这里展示一个示意 模块1 获取分类url列表 from bs4 import BeautifulSoup import request ...

  3. Python爬虫爬取异步加载的数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:努力努力再努力 爬取qq音乐歌手数据接口数据 https://y.qq ...

  4. 养只爬虫当宠物(Node.js爬虫爬取58同城租房信息)

    先上一个源代码吧. https://github.com/answershuto/Rental 欢迎指导交流. 效果图 搭建Node.js环境及启动服务 安装node以及npm,用express模块启 ...

  5. (转)Python网络爬虫实战:世纪佳缘爬取近6万条数据

    又是一年双十一了,不知道从什么时候开始,双十一从“光棍节”变成了“双十一购物狂欢节”,最后一个属于单身狗的节日也成功被攻陷,成为了情侣们送礼物秀恩爱的节日. 翻着安静到死寂的聊天列表,我忽然惊醒,不行 ...

  6. MATLAB爬虫爬取股票数据

    近年来,大数据盛行,有关爬虫的教程层次不穷.那么,爬虫到底是什么呢? 什么是爬虫? 百度百科是这样定义的: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种 ...

  7. 爬虫爬数据时,post数据乱码解决办法

    最近在写一个爬虫,目标网站是:http://zx.bjmemc.com.cn/,可能是为了防止被爬取数据,它给自身数据加了密.用谷歌自带的抓包工具也不能捕获到数据.于是下了Fiddler.     F ...

  8. 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫    1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...

  9. Python网络爬虫第三弹《爬取get请求的页面数据》

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

随机推荐

  1. Python字典(Dictionary)update()方法

    原文连接:https://www.runoob.com/python/att-dictionary-update.html Python字典(dictionary)update()函数把字典dict2 ...

  2. 修改Hexo自动生成的HTML文件名

    导读 我们在使用Hexo框架生成静态博客时,其实是将你写好的.md文件输出成HTML文件进行渲染,其中HTML的文件名称就是.md的文件名称. 而我们为了编辑文章方便,为了通过文件名就知道这是哪篇文章 ...

  3. MySQL使用crontab定时备份不执行问题

    在使用crontab定时备份数据库时,发现并没有执行备份命令. 下面是定时备份的代码: 30 1 * * * /usr/local/mysql/bin/mysqldump --defaults-ext ...

  4. Neo4j 第十二篇:使用Python驱动访问Neo4j

    neo4j官方驱动支持Python语言,驱动程序主要包含Driver类型和Session类型.Driver对象包含Neo4j数据库的详细信息,包括主机url.安全验证等配置,还管理着连接池(Conne ...

  5. rsync性能终极优化【Optimize rsync performance】

    前言 将文件从一台计算机同步或备份到另一台计算机的快速简便的方法是使用rsync.我将介绍通常用于备份数据的命令行选项,并显示一些选项以极大地将传输速度从大约20-25 MB / s加快到90 MB ...

  6. Java内功心法,深入解析面向对象

    什么是对象 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成. 类的实例化可生成对象,一个对象的生命周期包括三个阶段:生成.使用 ...

  7. hashmap与hashtable的本质区别

    HashMap 底层数据结构是哈希表.线程不安全,效率高                哈希表依赖两个方法:hashCode()和equals()                执行顺序:       ...

  8. webpack篇,结合理论与实际,加以透彻分析!

    Webpack篇 开始着手项目打包的一些东西,还不是特别懂,一边学习,一边做笔记好啦. 1.webpack的概念.Webpack 是当下最热门的前端资源模块化管理和打包工具.任何形式的资源都可以视作模 ...

  9. Python 定时调度

    APScheduler APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务 ...

  10. Ubuntu 18.04上安装Apache, MySQL, PHP, LAMP

    1.安装 Apache $ sudo apt update && sudo apt install apache2 中间会遇到停顿询问是否继续, 输入 y 然后 回车. 2.测试 Ap ...