完整源码在底部

【一、项目背景】

穷游网提供原创实用的出境游旅行指南、攻略,旅行社区和问答交流平台,以及智能的旅行规划解决方案,同时提供签证、保险、机票、酒店预订、租车等在线增值服务。穷游“鼓励和帮助中国旅行者以自己的视角和方式体验世界”。

今天教大家获取穷游网的城市信息,使用Python将数据写入csv文档。

【二、项目目标】

实现将获取对应的城市、图片链接、热点、批量下载 保存csv文档。

【三、涉及的库和网站】

1、网址如下:

https://place.qyer.com/south-korea/citylist-0-0-{}

2、涉及的库:requestsl****xml、fake_useragent、time、csv

【四、项目分析】

首先需要解决如何对下一页的网址进行请求的问题。可以点击下一页的按钮,观察到网站的变化分别如下所示:

https://place.qyer.com/south-korea/citylist-0-0-1https://place.qyer.com/south-korea/citylist-0-0-2https://place.qyer.com/south-korea/citylist-0-0-3

观察到只有citylist-0-0-{}/变化,变化的部分用{}代替,再用for循环遍历这网址,实现多个网址请求。

【五、项目实施】

1、我们定义一个class类继承object,然后定义init方法继承self,再定义一个主函数main继承self。准备url地址。

import requests,os
from lxml import etree
import random
import time
from fake_useragent import UserAgentclass Travel(object):def __init__(self):self.url = "https://place.qyer.com/south-korea/citylist-0-0-{}/"def main(self):pass
if __name__ == '__main__':spider= Travel()spider.main()

2、随机产生UserAgent。

      self.film_list = []ua = UserAgent(verify_ssl=False)for i in range(1, 50):self.film_list.append(ua.chrome)self.Hostreferer = {'User-Agent': random.choice(self.film_list)}

3、多页请求。

        startPage = int(input("起始页:"))endPage = int(input("终止页:"))for page in range(startPage, endPage + 1):url = self.url.format(page)

4、定义get_page方法,进行数据请求。

  '''数据请求'''def get_page(self, url):html = requests.get(url=url, headers=self.Hostreferer).content.decode("utf-8")self.page_page(html)# print(html)//网页# print(self.headers)//构造头

5、定义page_page,xpath解析数据, for循环遍历数组。

在谷歌浏览器上,右键选择开发者工具或者按F12。右键检查,xpath找到对应信息的字段。如下图所示。

   parse_html = etree.HTML(html)image_src_list = parse_html.xpath('//ul[@class="plcCitylist"]/li') for i in image_src_list:b = i.xpath('.//h3//a/text()')[0].strip()c = i.xpath('.//p[@class="beento"]//text()')[0].strip()d = i.xpath('.//p[@class="pics"]//img//@src')[0].strip()

6、定义csv文件保存数据,写入文档。

       # 创建csv文件进行写入csv_file = open('scrape.csv', 'a', encoding='gbk')csv_writer = csv.writer(csv_file)csv_writer.writerow([b, c, d])csv_file.close()

7、在main方法调用。

   def main(self):for i1 in range(1, 25):url = self.url.format(i1)# print(url)html = self.get_page(url)time.sleep(2)print("第%d页" % i1)

8、time模块,设置时间延迟。

           time.sleep(2)

【六、效果展示】

1、点击运行,输入起始页,终止页。

2、将下载成功信息显示在控制台。

3、保存csv文档。

【七、总结】

1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。

2、希望通过这个项目,能够帮助大家对csv文档处理有进一步的了解。

3、本文基于Python网络爬虫,利用爬虫库,实现穷游网的获取。实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

4、可以根据自己的需要选择自己的喜欢的城市获取自己想要的有效信息 。

5、需要本文源码的小伙伴,后台回复“穷游”四个字,即可获取。

关注公众号:Python爬虫数据分析挖掘,免费获取更多开源项目源码

10分钟教你利用Python网络爬虫获取穷游攻略相关推荐

  1. python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台, ...

  2. 一篇文章教会你利用Python网络爬虫获取穷游攻略

    [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台,以及智能的旅行规划解决方案,同时提供签证.保险.机票.酒店预订.租车等在线增值服务.穷游"鼓励和帮助中国旅 ...

  3. 手把手教你利用Python网络爬虫获取链家网的房产信息

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...

  4. python链家网爬虫_手把手教你利用Python网络爬虫获取链家网的房产信息

    点击上方" Python爬虫与数据挖掘 ",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来 ...

  5. 实战|手把手教你利用Python网络爬虫获取新房数据

    一.项目背景 大家好,我是J哥. 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. 今天J哥以惠民之家 ...

  6. python爬虫可以爬取个人信息吗_手把手教你利用Python网络爬虫获取旅游景点信息...

    爬虫系列: 当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格.开放时间.用户的评论等. 本文基于Python网络爬虫技术,以hao123旅游网为例,获取旅游景点信息. 1.项目目标 获取网站的景 ...

  7. 想学爬虫的同学看过来,手把手教你利用Python网络爬虫获取APP推广信息

    一.前言 CPA之家app推广平台是国内很大的推广平台.该网址的数据信息高达数万条,爬取该网址的信息进行数据的分析. 二.项目目的 实现将获取到的QQ,导入excel模板,并生成独立的excel文档. ...

  8. 手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 位卑未敢忘忧国,事定犹须待阖棺. ...

  9. 小猿圈分享利用python网络爬虫获取网易云歌词

    今天小猿圈给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌曲ID: 调用网易云歌曲API,获取歌词: 将歌词写入文件,并存入本 ...

最新文章

  1. mybatis-plus自动生成文件
  2. 中秋我用CSS写了个嫦娥奔月
  3. java socket 通讯
  4. 开源视觉salm算法介绍
  5. 静态html js文件上传,js实现动态添加上传文件页面
  6. java调用solr的分词查询结果
  7. Spring mvc 组件
  8. C#中public函数的用法_python中的lambda函数用法
  9. WIN10配置JAVA环境变量
  10. 红黄绿灯控制系统c语言,微机课设-红、黄、绿灯的控制系统设计.doc
  11. 什么是常量,常量的类型有哪些?
  12. chm文档已取消到该网页的导航的解决方法
  13. 《给青年的十二封信》 朱光潜 (摘录)
  14. 移动端适配方案(rem+flex)
  15. iOS性能优化-UI卡顿检测
  16. Kafka 的 Java 消费者如何管理 TCP 连接?
  17. 操作系统-虚拟内存技术
  18. 比较两个字符串的大小
  19. htc hd2刷android,真正的刷机之王! HTC HD2成功刷入安卓7.0
  20. day_03_连接池、事务、一对多和多对多配置

热门文章

  1. 更全面的开放能力 HMS Core 5.0重磅亮相华为开发者大会
  2. ShadowBroker公开的SMB远程命令执行漏洞修复
  3. 你跳槽一次能涨多少?今天见识到跳槽天花板
  4. 计算机用户打印权限设置,如何设置打印机权限?
  5. 幼儿园微课怎么制作?怎么给微课配音?
  6. NBIOT经典回答【转】
  7. pptp的 服务器位置,pptp有效服务器地址
  8. 数电和Verilog-时序逻辑实例四:状态机(三段式描述)
  9. Android修行手册 - 自定义验证码输入框
  10. phpexcel画出单元格边框