【问题标题】:Jsessionid interferes with crawlingjsessionid干扰爬取
【发布时间】:2017-02-06 15:49:47
【问题描述】:

我正在用python3练习爬行。

我正在抓取这个网站。

http://www.keri.org/web/www/research_0201?p_p_id=EXT_BBS&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_EXT_BBS_struts_action=%2Fext%2Fbbs%2Fview&_EXT_BBS_sCategory=&_EXT_BBS_sKeyType=&_EXT_BBS_sKeyword=&_EXT_BBS_curPage=1&_EXT_BBS_optKeyType1=&_EXT_BBS_optKeyType2=&_EXT_BBS_optKeyword1=&_EXT_BBS_optKeyword2=&_EXT_BBS_sLayoutId=0

我想从html代码中获取pdf的地址。

ex) 在 html 中,pdf down url 是

http://www.keri.org/web/www/research_0201?p_p_id=EXT_BBS&p_p_lifecycle=1&p_p_state=exclusive&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_EXT_BBS_struts_action=%2Fext%2Fbbs%2Fget_file&_EXT_BBS_extFileId=5326

但是,我的爬虫结果

http://www.keri.org/web/www/research_0201**;jsessionid=3875698676A3025D8877C4EEBA67D6DF**p_p_id=EXT_BBS&p_p_lifecycle=1&p_p_state=exclusive&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_EXT_BBS_struts_action=%2Fext%2Fbbs%2Fget_file&_EXT_BBS_extFileId=5306

我什至无法将文件下载到下面的地址。

jsessionid 是从哪里来的?

我可以擦掉它,但我想知道为什么。

** 为什么网址这么长?哈哈

【问题讨论】:

    标签: python-3.x web-crawler jsessionid


    【解决方案1】:

    我在我的代码中测试了jsessionid 不会影响下载文件:

    import requests, bs4
    
    r = requests.get('http://www.keri.org/web/www/research_0201?p_p_id=EXT_BBS&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_EXT_BBS_struts_action=%2Fext%2Fbbs%2Fview&_EXT_BBS_sCategory=&_EXT_BBS_sKeyType=&_EXT_BBS_sKeyword=&_EXT_BBS_curPage=1&_EXT_BBS_optKeyType1=&_EXT_BBS_optKeyType2=&_EXT_BBS_optKeyword1=&_EXT_BBS_optKeyword2=&_EXT_BBS_sLayoutId=0')
    soup = bs4.BeautifulSoup(r.text, 'lxml')
    down_links = [(a.get('href'), a.find_previous('a').text )for a in soup('a', class_="download")]
    for link, title in down_links:
        filename = title + '.pdf'
        r = requests.get(link, stream=True, headers=headers)
        with open(filename, 'wb') as f:
            for chunk in r.iter_content(chunk_size=1024):
                f.write(chunk)
    

    【讨论】:

    • @ 真的吗?我直接在我的网络浏览器中输入了下载网址。但是,我无法下载文件....无论如何,谢谢~!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2012-07-17
    • 2019-06-17
    • 2015-02-12
    • 2011-04-02
    • 2020-04-01
    • 2017-08-27
    相关资源
    最近更新 更多