python 爬取_Python爬虫爬取马蜂窝北京景点信息

背景

来北京有些日子了,但是每个周末都窝在六环外的村里躺着。想想不能再这么浪费时间了,得出去玩!但是去哪玩呢?于是乎想着,先把北京的景点以及位置都保存起来,然后在分析分析做个出行计划。从哪里获取景点信息呢?也正是最近世界杯马蜂窝的洗脑广告,想着就到马蜂窝上去爬取吧。

前言

本次爬虫使用python开发。自己并不是py工程师,但是还是很喜欢python这门语言的,毕竟人生苦短。所以,一直都想着把python作为一个工具来使用。因此我的目的是达到爬取北京的景点信息,实现了就好。毕竟自己不是专业的,在一些python编程规范以及细节方面,肯定是写得不怎么好,请各位指正。

涉及到的技术点

html

python库

这里我们用到了请求网络的urllib、mysql连接库pymysql、爬虫利器BeautifulSoup库

爬起来!

获取景点url地址

首先,我们需要分析一下马蜂窝的展示景点页面。页面链接地址:http://www.mafengwo.cn/jd/10065/gonglve.html。

我们可以看到这个页面主要介绍了必游景点TOP5、热门景点以及北京全部景点。我们需要从最下方的北京全部景点获取到我们需要的信息。

jMBn2i.png

点击了一下翻页,我们可以发现,这些景点列表是通过post调用这个地址:http://www.mafengwo.cn/ajax/router.php 来获取分页信息。参数如下:{‘sAct’: ‘KMdd_StructWebAjax|GetPoisByTag’, ‘iMddid’: 10065, ‘iTagId’: 0, ‘iPage’: page}。可以猜出,iMddid应该是城市id,iPage是分页页码。返回的也是一个json结构的信息,其中包括了列表的html源码。

6vYRVr.png

这样就比较简单了,只要访问这个地址,解析json以及html就可以获取到每个景点的展示地址嘞。参考代码:

post_url = "http://www.mafengwo.cn/ajax/router.php"

page = 1

# 北京景点一共231页

while page <= 231:

param = {'sAct': 'KMdd_StructWebAjax|GetPoisByTag', 'iMddid': 10065, 'iTagId': 0, 'iPage': page}

# 使用urllib

param = ur

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的Python爬虫网页数据并解析数据的教程: 1. 确定目标网站和要信息 首先,需要确定要的网站和要提信息。可以使用Python的requests库向网站发送HTTP请求获HTML源代码,并使用BeautifulSoup库解析HTML文档获目标数据。 例如,我们要CSDN博客的文章标题和链接,可以先打开CSDN博客主页,右键查看网页源代码,找到文章标题和链接所在的HTML标签。 2. 发送HTTP请求获HTML源代码 接下来,使用Python的requests库向网站发送HTTP请求,获HTML源代码。 ``` import requests url = 'https://blog.csdn.net/' response = requests.get(url) html = response.text ``` 3. 解析HTML文档获目标数据 使用BeautifulSoup库解析HTML文档,获目标数据。 ``` from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') titles = soup.find_all('div', class_='title') for title in titles: link = title.find('a').get('href') title_text = title.find('a').text.strip() print(title_text, link) ``` 上述代码中,通过`find_all`方法找到所有class属性为"title"的div标签,然后在每个div标签中找到第一个a标签,获链接和标题文本。 4. 完整代码 ``` import requests from bs4 import BeautifulSoup url = 'https://blog.csdn.net/' response = requests.get(url) html = response.text soup = BeautifulSoup(html, 'html.parser') titles = soup.find_all('div', class_='title') for title in titles: link = title.find('a').get('href') title_text = title.find('a').text.strip() print(title_text, link) ``` 以上就是一个简单的Python爬虫网页数据并解析数据的教程。需要注意的是,在网站数据时要遵守网站的爬虫协议,避免被网站封禁IP。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值