Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
被网吃掉了?爬虫生存在这个网站下使用python_Python_Web Crawler_Http Status Code 302 - Fatal编程技术网

被网吃掉了?爬虫生存在这个网站下使用python

被网吃掉了?爬虫生存在这个网站下使用python,python,web-crawler,http-status-code-302,Python,Web Crawler,Http Status Code 302,我正在制作网络爬虫来获取信息,但它显示了HTTP错误302,我无法修复它。 这张图片让你大致了解了这个网站的特殊布局,当你浏览它时,它会弹出一个窗口,告诉你这个网站正在加速,因为网上有这么多人,然后指引你到那个网站。因此,当我使用网络爬虫时,我得到的只是这个窗口上的信息,而不是这个网站上的任何信息。我认为这是一个很好的方式为网站管理员摆脱我们的网络爬虫。所以我想请你帮忙从这个网站上获取有用的信息 首先,我为我的网络爬虫使用了python的请求,我只获得了该窗口的信息,结果如下所示: 然后我禁止网

我正在制作网络爬虫来获取信息,但它显示了HTTP错误302,我无法修复它。 这张图片让你大致了解了这个网站的特殊布局,当你浏览它时,它会弹出一个窗口,告诉你这个网站正在加速,因为网上有这么多人,然后指引你到那个网站。因此,当我使用网络爬虫时,我得到的只是这个窗口上的信息,而不是这个网站上的任何信息。我认为这是一个很好的方式为网站管理员摆脱我们的网络爬虫。所以我想请你帮忙从这个网站上获取有用的信息

首先,我为我的网络爬虫使用了python的
请求
,我只获得了该窗口的信息,结果如下所示: 然后我禁止网站重定向,我得到HTTP错误303,显示:

这是我使用的最新代码:

python
这个问题的预期结果是从网站上获得有用的信息。我们可能需要处理弹出的窗口。

看起来此网站对使用请求的爬虫有某种保护,当您发送get请求时,页面未完全加载

您可以尝试使用selenium模拟浏览器:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.caam.org.cn/hyzc')
print(driver.page_source)
driver.close()
driver.page\u source
将包含页面源


您可以学习如何设置selenium webdriver。

我添加了一些东西来延迟关闭我的web爬网,这很有效。因此,我想分享我的观点,以防您将来遇到类似问题:

python
你能格式化你的代码吗?如果你在每行前面加4个空格,那将是一个好的开始。由于它是python,正确的缩进是至关重要的。谢谢你的建议,我在这里是新手,我正在学习如何格式化。我非常感谢你的回答。你的话并没有解决我的问题,我仍然得到了类似的结果,那只是提供了关于那个窗口的信息。但是你推荐的selenium确实帮了我很大的忙,我添加了一些东西来延迟关闭我的网络爬网,这很有效。因此,我想分享我的观点,以防您将来遇到类似问题:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.caam.org.cn/hyzc')
print(driver.page_source)
driver.close()
from selenium import webdriver    
from selenium.webdriver.chrome.options import Options  
from selenium.webdriver.support.ui import WebDriverWait    
from selenium.webdriver.support.ui import WebDriverWait    
from selenium.webdriver.support import expected_conditions as EC    
options = Options()   
driver = webdriver.Chrome(chrome_options=options)    
driver.get('http://www.caam.org.cn')    
body = driver.find_element_by_tag_name("body")    
wait = WebDriverWait(driver, 5, poll_frequency=0.05)    
wait.until(EC.staleness_of(body))    
print(driver.page_source)   
driver.close()