Я пытаюсь сканировать подобные страницы http://cmispub.cicpa.org.cn/cicpa2_web/07/0000010F849E5F5C9F672D8232D275F4.shtml. Каждая из этих страниц содержит определенную информацию об отдельном человеке.
Есть два способа попасть на эти страницы.
Один из них состоит в том, чтобы пометить их URL-адреса, что я и использовал в своем коде для скрапа.У меня были тела с запросами на отправку писем, такие как ascGuid=&isStock=00&method=indexQuery&offName=&pageNum=&pageSize=&perCode=110001670258&perName=&queryType=2
до http://cmispub.cicpa.org.cn/cicpa2_web/public/query0/2/00.shtml.
Эти сообщения возвращали ответ, где я мог использовать xpath и regex, чтобы найти такие строки, как '0000010F849E5F5C9F672D8232D275F4'
, чтобы найти URL, которые я действительно хотел:
next_url_part1 = 'http://cmispub.cicpa.org.cn/cicpa2_web/07/'
next_url_part2 = some xptah and regex...
next_url_part3 = '.shtml'
next_url_list.append([''.join([next_url_part1, i, next_url_part3]))
Наконец, scrapy отправил запросы GET по этим придуманным ссылкам и скачал и просканировал информацию, которую я хотел.Поскольку нужные мне страницы - это информация о разных людях, я могу изменить часть perCode=
в этих телах запросов POST, чтобы пометить соответствующие URL разных людей.
Но иногда этот способ не работает.Я отправил запросы GET примерно на 100 000 URL-адресов, которые я придумал, и я получил 5 404 ответа.Чтобы выяснить, что происходит, и получить информацию, которую я хочу, я сначала вставил эти неудачные URL-адреса в браузер, и, к моему удивлению, у меня все еще есть 404. Поэтому я попробовал другой способ на этих 404 URL-адресах.
Другой способ заключается в ручном доступе к этим страницам в браузере, как у реального человека.Поскольку нужные мне страницы представляют собой информацию о разных людях, я могу написать их личные коды в левом нижнем поле на этой странице http://cmispub.cicpa.org.cn/cicpa2_web/public/query0/2/00.shtml( работает только правильно в IE) и нажать оранжевую кнопку поиска внизу справа (котораяЯ думаю, что это в точности как отправка запросов POST).И тогда на экране появится таблица, нажав самые правые синие слова (которые являются именем человека), и я наконец смогу получить доступ к этим страницам.
Что меня смущает, так это то, что после того, как я практиковал 2-й способэти неудачные URL-адреса и получили то, что я хочу, эти предыдущие 404 URL-адреса вернут 200, когда я повторю их 1-м способом (чтобы избежать влияния файлов cookie, я повторяю их как в оболочке scrapy, так и в режиме inPrivate браузера).Затем я сравнил заголовки запросов GET с 200 и 404 ответами, и они выглядят одинаково.Я не понимаю, что здесь происходит.Не могли бы вы помочь мне?
Вот остальные неудачные URL-адреса, которые я не пробовал 2-м способом, поэтому они все равно возвращают 404 (если вы получаете 200, возможно, некоторые другие люди пробовали URL-адрес 2-м способом):
http://cmispub.cicpa.org.cn/cicpa2_web/07/7694866B620EB530144034FC5FE04783.shtml и персональный код этого человека 110001670258
http://cmispub.cicpa.org.cn/cicpa2_web/07/C003D8B431A5D6D353D8E7E231843868.shtml и персональный код этого человека 110101301633
http://cmispub.cicpa.org.cn/cicpa2_web/07/B8960E3C85AFCF79BF0823A9D8BCABCC.shtml и персональный код этого человека 110101480523
http://cmispub.cicpa.org.cn/cicpa2_web/07/8B51A9A73684ADF200A38A5D492A1FEA.shtml и персональный код этого человека 110101500315