WebScraping Requests Status 给我 200 没有内容
WebScraping Requests Status gives me 200 without content
我正在用 BeautifulSoup 练习抓取。在 Daijob 寻找数据分析工作时,我想抓取所有结果。共有 70 个结果,分为 7 页,每页 10 个结果。
website = 'https://www.daijob.com/en/jobs/search_result?job_search_form_hidden=1&keywords=Data+Analyst'
for page in range(20):
time.sleep(1)
r = requests.get(website, params = {"page" : page+1})
if r.status_code != 200:
break
else:
html = r.content
soup = BeautifulSoup(html, "lxml")
print('3[1m' + 'Web 1, page {0}'.format(page+1) + '3[0m')
所以我们的想法是页数会不断增加,当页数达到 8 时,循环就会停止。
自从 status_code 值变为 410 而不是 200,一旦达到没有数据的页码,它就在其他网站上工作。
但在这种情况下,无论您放置多少页(甚至可以是 100000 页),它都会一直给出 200 的 status_code,所以即使没有,我也无法停止循环抓取更多有用的数据。
是否有更有效的方法来自动停止该循环?谢谢!!
当找不到职位时,网站会显示此消息: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('3[1m' + 'Web 1, page {0}'.format(page+1) + '3[0m')
page += 1
输出:
Web 1, page 1
Web 1, page 2
Web 1, page 3
Web 1, page 4
Web 1, page 5
我正在用 BeautifulSoup 练习抓取。在 Daijob 寻找数据分析工作时,我想抓取所有结果。共有 70 个结果,分为 7 页,每页 10 个结果。
website = 'https://www.daijob.com/en/jobs/search_result?job_search_form_hidden=1&keywords=Data+Analyst'
for page in range(20):
time.sleep(1)
r = requests.get(website, params = {"page" : page+1})
if r.status_code != 200:
break
else:
html = r.content
soup = BeautifulSoup(html, "lxml")
print('3[1m' + 'Web 1, page {0}'.format(page+1) + '3[0m')
所以我们的想法是页数会不断增加,当页数达到 8 时,循环就会停止。
自从 status_code 值变为 410 而不是 200,一旦达到没有数据的页码,它就在其他网站上工作。
但在这种情况下,无论您放置多少页(甚至可以是 100000 页),它都会一直给出 200 的 status_code,所以即使没有,我也无法停止循环抓取更多有用的数据。
是否有更有效的方法来自动停止该循环?谢谢!!
当找不到职位时,网站会显示此消息: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('3[1m' + 'Web 1, page {0}'.format(page+1) + '3[0m')
page += 1
输出:
Web 1, page 1
Web 1, page 2
Web 1, page 3
Web 1, page 4
Web 1, page 5