Web报废请求状态给我200条没有内容

问题描述

我正在用BeautifulSoup练习抓取。我想在Daijob上查找Data Analysis职位时抓取所有所有结果。共有70个结果,分为7页,每页10个结果。

for(int i = 1; i < count.size(); i++){
    if(count[i-1] == (count[i])){
        return false;
    }
}

因此,我们的想法是页面数将继续增加,并且当页面数达到8时,循环将停止。

自从status_code值达到没有数据的页码后,该值已从410(而不是200)开始在其他网站上起作用。

但是在这种情况下,无论您放置多少页(甚至可以是100000),它都始终提供status_code 200,因此即使没有更多有用的数据要剪贴,我也无法停止循环。

有没有更有效的方法自动停止该循环?谢谢!

解决方法

未找到任何作业时,网站会显示以下消息:No jobs were found that matched your search.您可以使用它来查找页面是否包含任何作业。这是完整的代码:

import time
import requests
from bs4 import BeautifulSoup

website = 'https://www.daijob.com/en/jobs/search_result?job_search_form_hidden=1&keywords=Data+Analyst'

page = 0

while True:

        time.sleep(1)

        r = requests.get(website,params = {"page" : page+1})
        if 'No jobs were found that matched your search.' in r.text:
            break
        else:
            html = r.content
            soup = BeautifulSoup(html,"lxml")
            print('\033[1m' + 'Web 1,page {0}'.format(page+1) + '\033[0m')
            page += 1

输出:

Web 1,page 1
Web 1,page 2
Web 1,page 3
Web 1,page 4
Web 1,page 5