分析

这是目标网址
可以发现它是通过点击下一页来翻页的,所以可以大概率判断它每一页的链接是有规律的,我们找出它的前两页的链接:

https://place.qyer.com/china/citylist-0-0-1/
https://place.qyer.com/china/citylist-0-0-2/

可以发现的确是有规律的,再找一个稍微后一点的页面看看:

https://place.qyer.com/china/citylist-0-0-169/

这下确定无疑了,可以看到,它有171个页面,链接中的数字也是从1开始一直到171,所以可以用一个for循环来提取每一页的内容。
接下来就是分析如何提取一个页中的内容了,我个人最拿手的是xpath,有些人使用的是BeautifulSoup也行。
可以在Chrome的开发者工具中明显看到每一个城市对应一个li标签,所以我先将所有的li标签提取出来,提取结果是一个列表,列表中的每一个对象也是Selector对象,也就是说列表中的每一个li标签还可以使用xpath方法提取该节点中的内容。
接下来就是写好要提取的内容对应的xpath语句了,可以使用Full copy Xpath或在xpath helper插件中自己写。

代码编写

下面是程序的完整代码:

import requests  # the library to initiate a request
from fake_useragent import UserAgent  # the library to make the request header
import parsel  # the library to parse HTML
import csv  # the library to writer csv filedef getdata(url):headers = {"user-Agent": UserAgent().chrome}response = requests.get(url=url, headers=headers)response.encoding = response.apparent_encodingselector = parsel.Selector(response.text)# extract all li tagslis = selector.xpath('//ul[@class="plcCitylist"]/li')for li in lis:city_names = li.xpath('./h3/a/text()').get()city_names = city_names.rstrip()number_people = li.xpath('./p[2]/text()').get()place_hot = li.xpath('./p[@class="pois"]/a/text()').getall()place_hot = [place.strip() for place in place_hot]place_hot = '、'.join(place_hot)place_url = li.xpath('./p[@class="pics"]/a/@href').get()img_url = li.xpath('./p[@class="pics"]/a/img/@src').get()print(city_names, number_people, place_url, img_url, place_hot, sep='|')with open('qiongyouDate.csv', mode='a', encoding='utf-8', newline='') as file_object:csv_write = csv.writer(file_object)csv_write.writerow([city_names, number_people, place_url, img_url, place_hot])def main():for i in range(1, 172):url = "https://place.qyer.com/china/citylist-0-0-{}/".format(str(i))getdata(url)if __name__ == '__main__':main()

运行结果

运行上面的代码,爬取到的数据会打印在控制台中,并且运行完成后会在程序目录中生成一个名为qingyouDate.csv的csv文件,可以使用WPS或Excel将这个文件打开。

下面是运行截图:

下面是生成的csv文件内容截屏:

爬取速度有一点慢。。。还请大家耐心等待

Python爬取某旅游网站中的中国城市信息相关推荐

  1. 用Python爬取顶点小说网站中的《庆余年》思路参考——记一次不成功的抓取

    目的:用python爬虫抓取顶点小说网站中的<庆余年>小说内容个,并保存为txt格式文件. 环境:Win10系统,Anaconda3 + PyCharm, python3.6版本 思路:( ...

  2. Python爬虫:输入公司名称,爬取企查查网站中的公司信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于Python爬虫数据分析挖掘 ,作者:李运辰 根据输入的公司名称来爬取企查查网 ...

  3. Python爬取豆瓣Top250电影中2000年后上映的影片信息

    Python爬取豆瓣Top250电影中2000年后上映的影片信息 前言 双十一前加在京东购物车的一个东西,价格330,Plus会员用券后差不多310.双十一当天打开看了下399,还得去抢满300减10 ...

  4. 教你用Python爬取表情包网站下的全部表情图片

    教你用Python爬取表情包网站下的全部表情图片 又是我啦~~~ 最近上网的时候老看到有人用Python爬取表情包,心痒痒自己也整了一个. 使用到的扩展库:BeautifulSoup, request ...

  5. 爬取链家网站中的租房信息

    爬取链家网站中的租房信息 信息爬取代码 信息爬取代码 import requests from lxml import etree import pandas as pdwith open('zufa ...

  6. Python爬取了《雪中悍刀行》数据,数据可视化分析

    Python爬取了<雪中悍刀行>数据,数据可视化分析 如何查找视频id 项目结构 制作词云图 制作最近评论数条形图与折线图 制作每小时评论条形图与折线图 制作最近评论数饼图 制作每小时评论 ...

  7. 使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析

    使用Python爬取"最好大学网"软科中国最好大学排名2019并做可视化分析 简介 开发环境 爬取数据 1.获取网站页面 2.解析网页内容 3.存储数据 可视化分析 基本设置 显示 ...

  8. python爬虫爬取数据如何将br去掉_Python怎么去除爬取下来的网站中的一些转义字符串 - 收获啦...

    基本方法 其实用python爬取网页很简单,只有简单的几句话 这样就可以获得到页面的内容.接下来再用正则匹配去匹配所需要的内容就行了.但是,真正要做起来,就会有各种各样的细节问题. 2.登录 这是一个 ...

  9. 元旦假期,去哪里旅游好呢?Python爬取元旦旅游最全攻略!

    2020还有最后几天就就结束了,您考虑好2021的第一天去哪里旅游了吗,不如来看看使用Python爬取最全攻略!受益的朋友给个三连. 转发请求声明. 一.实现思路 首先我们爬取的网站是一个穷游网站: ...

最新文章

  1. SpringBoot02_构建rest工程完成第一个controller类
  2. Silverlight的企业应用
  3. HTTP POST慢速DOS攻击初探
  4. 他们隔空协作,打造出懂医学、知开源的智能机器人
  5. 后台运行神器screen
  6. 第四范式陈雨强:做机器学习平台天然就是新基建丨新基建50人
  7. Linux清mysql磁盘,mysql与linux ~ 磁盘分析与调优
  8. Java基础篇(04):日期与时间API用法详解
  9. Storm入门教程 Storm安装部署步骤
  10. Python读取dat文件数据并构成Dataframe对象
  11. 学习TeXworks编辑器(二)TAB补全详解与自定义补全命令总结
  12. SAP License:Ecc6.0和R/3 有什么区别?
  13. HDU1029——Ignatius and the Princess IV
  14. YII2 rules 规则验证器
  15. 酷客多小程序DIY体系全面升级,还加入了这些新功能
  16. JavaWeb实现简易新闻管理系统
  17. Cisco VPP fib.h中文对照
  18. 5G接入网与基站演进
  19. 高精度文字识别工具,图片转文字工具免费版,ocr
  20. getImageMatrix、getMatrix傻傻分不清

热门文章

  1. 设计模式:模板方法模式(Template Method)
  2. BloomFilter算法概述
  3. cocos2d-x2.2九宫格CCScale9Sprite有bug
  4. Netflix 工程师的生活 —— 40毫秒的案例
  5. Netflix如何节省92%视频编码成本?
  6. spark项目实战:电商分析平台之各个范围Session步长、访问时长占比统计(需求一)
  7. 《直播疑难杂症排查》之四:延时高
  8. 导入依赖和加上注释后,lombok gettersetter识别不到
  9. java小编程----给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
  10. leetcode 1217. Minimum Cost to Move Chips to The Same Position | 1217. 玩筹码(Java)