当前位置: 首页 > 后端技术 > Python

一篇文章教你用Python网络爬虫获取QYER旅游攻略

时间:2023-03-26 15:42:00 Python

【1.【项目背景】穷游网提供原创实用的出境游攻略、攻略、旅游社区和问答平台,以及智能化的旅行规划解决方案。提供在线签证、保险、机票、酒店预订、租车等增值服务。穷游网“鼓励和帮助中国旅行者从自己的角度和方式去体验世界”。今天教大家获取Qyer.com的城市信息,并用Python将数据写入csv文件。[2。项目目标】实现会获取对应的城市,图片链接,热点,批量下载并保存csv文件。[3.涉及的库和网站]1.网址如下:https://place.qyer.com/south-korea/citylist-0-0-{}2.涉及的库:requests,lxml,fake_useragent,time,csv[4.项目分析】首先,我们要解决如何请求下一页的URL的问题。您可以点击下一页的按钮,观察网站的变化如下: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循环遍历URL来实现多个URL请求。[V.项目实现】1、我们定义一个类class继承object,然后定义init方法继承self,再定义一个main函数main继承self。准备url地址。导入请求,osfromlxmlimportetreeimportrandomimporttimefromfake_useragentimportUserAgentclassTravel(object):def__init__(self):self.url="https://place.qyer.com/south-korea/citylist-0-0-{}/"defmain(self):passif__name__=='__main__':spider=Travel()spider.main()2.随机生成UserAgent。self.film_list=[]ua=UserAgent(verify_ssl=False)foriinrange(1,50):self.film_list.append(ua.chrome)self.Hostreferer={'User-Agent':random.choice(self.film_list)}3.多页请求。startPage=int(input("Startpage:"))endPage=int(input("Endpage:"))forpageinrange(startPage,endPage+1):url=self.url.format(page)4,定义get_page方法来请求数据。'''数据请求'''defget_page(self,url):html=requests.get(url=url,headers=self.Hostreferer).content.decode("utf-8")self.page_page(html)#print(html)//webpage#print(self.headers)//构造header5、定义page_page,用xpath分析数据,用for循环遍历数组。在GoogleChrome上,右键单击并选择开发人员工具或按F12。右键查看,xpath找到对应的信息字段。如下所示。parse_html=etree.HTML(html)image_src_list=parse_html.xpath('//ul[@class="plcCitylist"]/li')foriinimage_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方法中调用。defmain(self):fori1inrange(1,25):url=self.url.format(i1)#print(url)html=self.get_page(url)time.sleep(2)print("%%paged"%i1)8.时间模块,设置延时时间。时间.睡眠(2)[6。效果展示】1.点击运行,进入开始页面和结束页面。2.在控制台显示下载成功信息。3.保存csv文件。[7.总结】1、不建议抓取太多数据,容易造成服务器负载,稍微尝试一下。2、希望这个项目可以帮助大家对csv文件处理有更深入的了解。3、本文基于Python网络爬虫,使用爬虫库获取穷游网。到实现的时候,总会遇到各种各样的问题。不要好高骛远,踏踏实实去努力,这样才能理解的更深刻。4.您可以根据自己的需要,选择自己喜欢的城市,获取想要的有效信息。5、需要本文源码的朋友可以在后台回复“千游攻略”获取。看完这篇文章你有收获吗?请转发分享给更多的人加入IT分享之家群,请在微信后台回复【进群】如果想深入了解Python网络爬虫和数据挖掘,可以上专业网站:http://pdcfighting.com/