爬虫--爬取自己想去的目的的车票信息

这篇具有很好参考价值的文章主要介绍了爬虫--爬取自己想去的目的的车票信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

本篇文章主要作为一个爬虫项目的小练习,来给大家进行一下爬虫的大致分析过程以及来帮助大家在以后的爬虫编写中有一个更加清晰的认识。

一:环境配置

Python版本:3.7

IDE:PyCharm

所需库:requests,bs4,xlwt

二:网页分析

1我们需要去找到user-Agent

爬虫--爬取自己想去的目的的车票信息,爬虫,python,beautifulsoup

三:编写代码 

1:导入所需库

import requests
from bs4 import BeautifulSoup
import xlwt

2:编写请求头与参数

url = 'https://trains.ctrip.com/TrainBooking/Search.aspx'
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'Cookie':'Union=OUID=index&AllianceID=4897&SID=155952&SourceID=&createtime=1693561627&Expires=1694166426834; MKT_OrderClick=ASID=4897155952&AID=4897&CSID=155952&OUID=index&CT=1693561626835&CURL=https%3A%2F%2Fwww.ctrip.com%2F%3Fsid%3D155952%26allianceid%3D4897%26ouid%3Dindex&VAL={}; _ubtstatus=%7B%22vid%22%3A%221693561626984.ex3rp%22%2C%22sid%22%3A1%2C%22pvid%22%3A1%2C%22pid%22%3A102001%7D; MKT_CKID=1693561627205.kumds.y2nu; MKT_CKID_LMT=1693561627205; GUID=09031035213146004963; _jzqco=%7C%7C%7C%7C1693561627595%7C1.1256646287.1693561627210.1693561627210.1693561627210.1693561627210.1693561627210.0.0.0.1.1; _RF1=183.230.199.69; _RSG=..qaukvM.m2ykJjUVrQ3T8; _RDG=28437eee4e4c56259b173f8be0c752f59b; _RGUID=2c3e5b9b-b893-4fbe-8743-6b57deb53bbc; MKT_Pagesource=PC; _bfaStatusPVSend=1; _bfi=p1%3D102001%26p2%3D0%26v1%3D1%26v2%3D0; _bfaStatus=success; nfes_isSupportWebP=1; nfes_isSupportWebP=1; Hm_lvt_576acc2e13e286aa1847d8280cd967a5=1693561632; UBT_VID=1693561626984.ex3rp; __zpspc=9.1.1693561627.1693561631.3%232%7Cwww.baidu.com%7C%7C%7C%25E6%2590%25BA%25E7%25A8%258B%7C%23; _resDomain=https%3A%2F%2Fbd-s.tripcdn.cn; Hm_lpvt_576acc2e13e286aa1847d8280cd967a5=1693580464; _bfa=1.1693561626984.ex3rp.1.1693580463154.1693580623580.1.6.10650065554; _pd=%7B%22_o%22%3A30%2C%22s%22%3A154%2C%22_s%22%3A1%7D'
}
params={
    'from':'wushan',
    'to':'chongqing',
    'dayday':'false',
    'fronCn':'巫山',
    'toCn':'重庆',
    'date':'2023-09-02',
}

3:发送请求并编写表头,把数据写入excel文件

response=requests.get(url=url,headers=headers,params=params)
soup=BeautifulSoup(response.text,'html.parser')
ticket_list=soup.select('#div_Result > .list_item')


workbook =xlwt.Workbook(encoding='utf-8')
worksheet=workbook.add_sheet('Ticket Info',cell_overwrite_ok=True)

worksheet.write(0,0,label='车次')
worksheet.write(0,1,label='出发时间')
worksheet.write(0,2,label='到达时间')
worksheet.write(0,3,label='历时')
worksheet.write(0,4,label='余票')

row=1
for ticket in ticket_list:
    train_no=ticket.select('.num>a')[0].text.strip()
    start_time=ticket.select('.cds > .start_time')[0].text.strip()
    end_time = ticket.select('.cds > .end_time')[0].text.strip()
    duration = ticket.select('.cds > .time')[0].text.strip()
    remarks = ticket.select('.cds > .note')[0].text.strip()


    ticket_url = 'https://trains.ctrip.com/TrainBooking/TrainQuery.aspx'
    ticket_params={
        'from':'wushan',
        'to':'chongqing',
        'dayday':'false',
        'date':'2023-09-02',
        'trainNo':train_no,
    }
    ticket_response=requests.get(ticket_url,headers=headers,params=ticket_params)
    ticket_soup=BeautifulSoup(ticket_response.text,'html.parser')
    ticket_remaining=ticket_soup.select('.new_situation > p >span')[0].text.strip()


    worksheet(row,0,label=train_no)
    worksheet(row, 1,label=start_time)
    worksheet(row, 2,label=end_time)
    worksheet(row, 3,label=duration)
    worksheet(row, 4,label=ticket_remaining)
    row +=1
    print(train_no,start_time,end_time,duration,remarks,ticket_remaining)
workbook.save('ticket_info.xls')

以上便是基本的源码,由于12306官网具有严格的反爬机制,所以不建议对12306官网进行爬取,如果未经授权将会承担相关责任,所以请选择其他软件进行示范,不过其他软件也会具有一些反爬机制,会导致爬取失败。文章来源地址https://www.toymoban.com/news/detail-688919.html

到了这里,关于爬虫--爬取自己想去的目的的车票信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python 爬虫 爬取高考录取分数线 信息

    原文链接: python 爬虫 爬取高考录取分数线 信息 上一篇: axios 原生上传xlsx文件 下一篇: pandas 表格 数据补全空值 网页 https://gkcx.eol.cn/school/search 完整资料一个多g 高校信息爬取接口 省份信息,在需要选择省份的下拉框页面中查看请求 接口有最大数据传输量的限制,需要按照分页

    2023年04月09日
    浏览(30)
  • 爬虫 | Python爬取微博实时热搜榜信息

    大家好,我是程序员晓晓~ 本期给大家分享一下如何 用python获取微博热搜榜 信息,包含 爬取时间、序号、、热度 等信息,希望对大家有所帮助。 所有内容仅供参考,不做他用。 1. 网页分析 目标网址(微博热搜榜): https://s.weibo.com/top/summary 实时热搜榜一共有50条,每个

    2024年02月02日
    浏览(46)
  • 快乐学Python,使用爬虫爬取电视剧信息,构建评分数据集

    在前面几篇文章中,我们了解了Python爬虫技术的三个基础环节:下载网页、提取数据以及保存数据。 这一篇文章,我们通过实际操作来将三个环节串联起来,以国产电视剧为例,构建我们的电视剧评分数据集。 收集目前国产电视剧的相关数据,需要构建国产电视剧和评分的

    2024年01月21日
    浏览(36)
  • 【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡 往期推荐 : ⭐️首先,我们前面讲了多篇基础内容: 【Python爬虫开发基础④】爬虫原理 【Python爬虫开发基础⑤】HTML概述与基本标签详解 【P

    2024年02月12日
    浏览(32)
  • Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)(1)

    browser.find_element_by_xpath(‘.//ul[@id=“headerNav”]/li[4]’).click() 8.点击群管理之后,进入群管理界面,我们需要的是成员管理 WebDriverWait(browser, 1000).until( EC.presence_of_all_elements_located( (By.CLASS_NAME, ‘color-tit’) ) ) browser.find_element_by_class_name(‘color-tit’).click() 9.点击成员管理之后会重新

    2024年04月28日
    浏览(34)
  • python爬虫爬取微信公众号的阅读数、喜爱数、文章标题和链接等信息

    爬虫的步骤: (1)申请自己的公众号 (2)使用fiddler抓包工具 (3)pycharm (一)申请公众号 官网:微信公众平台 填入相关信息创建微信公众号 进入公众号界面如下: 找到新的创作-图文信息 在弹出的界面中查找公众号文章-输入公众号名称-确定 点击确认之后,进入公众号

    2024年02月05日
    浏览(42)
  • python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息

    接着上一篇的笔记,Scrapy爬取普通无反爬、静态页面的网页时可以顺利爬取我们要的信息。但是大部分情况下我们要的数据所在的网页它是动态加载出来的(ajax请求后传回前端页面渲染、js调用function等)。这种情况下需要使用selenium进行模拟人工操作浏览器行为,实现自动化

    2024年02月04日
    浏览(46)
  • 爬虫源码---爬取自己想要看的小说

    小说作为在自己空闲时间下的消遣工具,对我们打发空闲时间很有帮助,而我们在网站上面浏览小说时会被广告和其他一些东西影响我们的观看体验,而这时我们就可以利用爬虫将我们想要观看的小说下载下来,这样就不会担心广告的影响了。 Python版本:3.7.3 IDE:PyCharm 所需库

    2024年02月09日
    浏览(30)
  • 《大众点评爬虫程序实战:爬取店铺展示信息》

     在日常生活中,我们经常会遇到一个问题:不知道吃什么。尤其是在陌生的城市或附近的地方,面对众多的餐馆选择,很难做出决策。随着互联网的发展,大众点评等餐饮评价平台应运而生,为我们提供了海量的餐馆信息和用户评价。然而,即使在这样的平台上,面对庞大

    2024年04月25日
    浏览(35)
  • 网络爬虫丨基于scrapy+mysql爬取博客信息

    本期内容 :基于scrapy+mysql爬取博客信息并保存到数据库中 实验需求 anaconda丨pycharm python3.11.4 scrapy mysql 项目下载地址:https://download.csdn.net/download/m0_68111267/88740730 本次实验实现了:使用Scrapy框架爬取博客专栏的目录信息并保存到MySQL数据库中,实验主要涉及到Python的爬虫技术以

    2024年03月18日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包