【发布时间】:2017-03-21 16:42:20
【问题描述】:
我正在尝试从大学网站上的职业页面中抓取链接,但出现此错误。
urllib.error.HTTPError:HTTP 错误 302:HTTP 服务器返回一个重定向错误,这将导致无限循环。 最后的 30x 错误消息是: 临时搬家
我认为这是因为该网站有一个会话 cookie。在做了一些阅读之后,似乎有很多方法可以解决这个问题(Requests、http.cookiejar、Selenium/PhantomJs),但我不知道如何将这些解决方案合并到我的抓取程序中。
这是我的抓取程序。它是用 Python 3.6 和 BeautifulSoup4 编写的。
from bs4 import BeautifulSoup
from urllib.request import urlopen
html = urlopen("https://jobs.fanshawec.ca/applicants/jsp/shared/search/SearchResults_css.jsp")
soup = BeautifulSoup(html, 'html.parser')
data = soup.select(".ft0 a")
ads = []
for i in data:
link = i.get('href')
ads.append(link)
for job in ads:
print(job)
print('')
当我清除浏览器中的 cookie 并手动转到我要抓取的页面 (https://jobs.fanshawec.ca/applicants/jsp/shared/search/SearchResults_css.jsp) 时,我会转到另一个页面。不过,一旦有了 cookie,我就可以直接进入我想要抓取的 SearchResults 页面。
这是 cookie:
关于如何处理这个 cookie 有什么想法吗?
【问题讨论】:
-
它可能还需要 javascript,在这种情况下,您需要通过 selenium 之类的方式读取 HTML。
标签: python cookies beautifulsoup python-requests