Поел в сети?Crawler выживания под этим сайтом с помощью Python - PullRequest
0 голосов
/ 27 мая 2019

Я делаю веб-сканер для получения информации от http://www.caam.org.cn/hyzc,, но он показал мне ошибку HTTP 302, и я не могу ее исправить.https://imgur.com/a/W0cykim Картинка дает вам приблизительное представление об особом макете этого веб-сайта. Когда вы просматриваете его, он выскакивает в окно, сообщая, что веб-сайт ускоряется по той причине, чтомногие люди онлайн, а затем направить вас на этот сайт.В результате, когда я использую веб-сканер, все, что я получаю, это информацию в этом окне, но ничего на этом сайте.Я думаю, что это хороший способ для владельца веб-сайта избавиться от наших веб-сканеров.Поэтому я хочу попросить вас о помощи, чтобы получить полезную информацию с этого сайта

Сначала я использовал requests python для своего веб-сканера, и я получил информацию только в этом окне, результаты показаны здесь: https://imgur.com/a/GLcpdZn И тогда я запретил перенаправление сайта, я получил ошибку HTTP 303, показанную: https://imgur.com/a/6YtaVOt

Это последний код, который я использовал:

python

import requests
def getpage(url):
    try:
        r= requests.get(url, headers={'User-Agent':'Mozilla/5.0'}, timeout=10)
        r.raise_for_status() 
        r.encoding = r.apparent_encoding 
        return r.text
    except:
        return "try again"
url = "http://www.caam.org.cn/hyzc"
print(getpage(url))

Ожидаемый результат этого вопроса - получить полезную информацию с веб-сайта http://www.caam.org.cn/hyzc. Возможно, нам придется разобраться с выпавшим окном.

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Я добавил что-то, чтобы отложить закрытие моего веб-сканирования, и это сработало. Поэтому я хочу поделиться своими строками на случай, если вы столкнетесь с подобной проблемой в будущем:

питон

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()
0 голосов
/ 27 мая 2019

Похоже, что этот веб-сайт имеет некоторую защиту от сканеров, использующих запросы, при отправке запроса страница не загружается полностью.

Вы можете попробовать эмулировать браузер, используя селен:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.caam.org.cn/hyzc')
print(driver.page_source)
driver.close()

driver.page_source будет содержать источник страницы.

Вы можете узнать, как настроить селеновый вебдрайвер здесь .

...