账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python爬虫,Windows上正常,linux爬下错误页?
    36
    0

    琢磨着搞一个爬虫监控一下12306固定车次的放票情况。
    自己电脑上写完之后跑起来很正常。爬取频率也不高。五分钟爬一次,每次爬的时候依次爬8天的车票情况。每天之间间隔5秒。
    在自己电脑上跑了三个小时,数据都是正常的。
    遂放到vps上让他自己跑。结果爬回来的就是个错误提示页。没有爬到正常的json数据。
    怀疑是ip被封,换了个vps,依然不行。又在路由器上装了个Python,跟电脑用的是同一个网。依然爬不到东西。本人比较菜。网上查了半天也没找到解决办法。。

    代码如下

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import requests
    import json
    #import email2
    from fake_useragent import UserAgent
    
    
    '''ltrain_date='2018-12-28'  #日期
    from_station='BXP'     #出站
    to_station='IOQ'   #到站'''
       #票型
    
    def get_num(date,from_s,to_s):
    
        url=('https://kyfw.12306.cn/otn/leftTicket/queryZ?'
             'leftTicketDTO.train_date={}&'
             'leftTicketDTO.from_station={}&'
             'leftTicketDTO.to_station={}&'
             'purpose_codes=ADULT').format(date,from_s,to_s)
    
        head = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
        'Cache-Control': 'max-age=0',
        'Connection': 'keep-alive',
        'User-Agent': UserAgent().random,
        'Referer': 'https://kyfw.12306.cn/otn/leftTicket/init'
        }
    
        with requests.Session() as s:
            res = s.get(url,headers = head)  #verify=False
            res.encoding = "utf-8"
        #res = requests.get(url,params=param,headers = head)
        #r = res.text.encode('utf-8')
        print(res.text)
    
        #print(type(r))
        jsons = json.loads(res.text)
    
    
        data1 = jsons["data"]["result"][2]
        data = data1.split("|")
    
        print("{},{},{}".format(data[3],data[28],data[29]))
        return data[3],data[28],data[29]
        #return res
    
        # 3车次,26无座,28硬卧,29硬座
    if __name__ == '__main__':
        get_num("2019-01-03","QTP","WFK")
    

    url部分,本来是用的params传入数据,Windows上也没问题。vps的Centos上不行。换成了现在这个样子的。在vps上爬了一组数据就不行了。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 難以釋懷 普通会员 1楼

      在爬取网页时,错误页通常是由于服务器的问题或者网络问题导致的。以下是一些可能的解决方案:

      1. 检查服务器状态:你可以查看服务器的错误日志或者访问服务器的IP地址,看看是否有任何异常信息。例如,如果你的爬虫在错误页无法访问,那么可能是服务器的问题,需要检查服务器的状态。

      2. 检查网络状况:确保你的爬虫连接到了互联网,并且网络状况良好。如果网络有问题,可能会导致爬虫无法正常运行。

      3. 使用代理IP:如果你的爬虫使用的是公共IP地址,那么可能会被封禁。你可以使用代理IP来解决这个问题。

      4. 限制爬取速度:爬取速度过快可能会导致服务器的负担过重,从而导致错误页无法正常访问。你可以根据服务器的性能来调整爬取速度。

      5. 检查抓取工具:有些爬虫工具可能会因为网络问题或者服务器问题导致无法正常抓取。你可以检查你的爬虫工具是否正确安装和配置。

      以上是一些可能的解决方案,具体的解决方案需要根据你的爬虫的问题来确定。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部