2016-04-18 1 views
0

Я хочу получить все названия() на веб-сайте.Скремблирование «N» страниц с помощью Beautifulsoup и запросов (как получить истинный номер страницы)

http://www.shyan.gov.cn/zwhd/web/webindex.action 

Теперь мой код успешно удаляет только одну страницу. Тем не менее, есть несколько страниц, доступных на сайте выше, в котором я хотел бы очистить.

Например, с указанным выше адресом, когда я нажимаю ссылку на «страница 2», общий URL-адрес НЕ изменяется. Я посмотрел на источник страницы и увидел код javascript для перехода на следующую страницу: javascript: gotopage (2) или javascript: void (0). Мой код здесь (получить страницу 1)

from bs4 import Beautifulsoup 
import requests 
url = 'http://www.shyan.gov.cn/zwhd/web/webindex.action' 
r = requests.get(url) 
soup = Beautifulsoup(r.content,'lxml') 
titles = soup.select('td.tit3 > a') 
for title in titles: 
    print(title.get_text()) 

Как мой код будет изменен, чтобы очистить от названия всех доступных перечисленных страниц? Большое спасибо!

+0

Спасибо большое! Но я не могу получить следующую страницу. Мой код ниже. Пожалуйста, помогите мне изменить его. –

ответ

1

Попробуйте использовать следующий формат URL:

http://www.shiyan.gov.cn/zwhd/web/webindex.action?keyWord=&searchType=3&page.currentpage=2&page.pagesize=15&page.pagecount=2357&docStatus=&sendOrg=

Сайт использует JavaScript, чтобы передать скрытую информацию страницы на сервер, чтобы запросить следующую страницу. Когда вы просматриваете источник, вы обнаружите:

<form action="/zwhd/web/webindex.action" id="searchForm" name="searchForm" method="post"> 
<div class="item"> 
    <div class="titlel"> 
     <span>留言查询</span> 
    <label class="dow"></label> 
    </div> 
    <input type="text" name="keyWord" id="keyword" value="" class="text"/> 
    <div class="key"> 
     <ul> 
      <li><span><input type="radio" checked="checked" value="3" name="searchType"/></span><p>编号</p></li> 
      <li><span><input type="radio" value="2" name="searchType"/></span><p>关键字</p></li> 
     </ul>  
    </div> 
    <input type="button" class="btn1" onclick="search();" value="查询"/> 
    </div> 
    <input type="hidden" id="pageIndex" name="page.currentpage" value="2"/> 
    <input type="hidden" id="pageSize" name="page.pagesize" value="15"/> 
    <input type="hidden" id="pageCount" name="page.pagecount" value="2357"/> 
    <input type="hidden" id="docStatus" name="docStatus" value=""/> 
    <input type="hidden" id="sendorg" name="sendOrg" value=""/> 
    </form> 
+0

Спасибо, это хороший выбор. Это легче понять, чем селен. –

+0

@vassilo Как вы пришли к этому URL (с точки зрения форматирования скрытых элементов в URL)? – Phillip

+1

Я использую DevTools Google Chrome для проверки запросов веб-страницы, когда я нажимаю ссылку на следующую страницу. Определите соответствующий запрос, и вы хорошо пойдете. – vassilo

Смежные вопросы