Как перемещаться по HTMl-страницам, которые имеют пейджинг для своего контента с помощью Python?

Я хочу обходить все записи таблицы (таблицу, которая описывает S / No., № документа и т. Д.) Со следующего веб-сайта и записать ее в Excel. Пока я могу сканировать данные только с первой страницы (всего 10 записей). Может кто-нибудь, пожалуйста, помогите мне с частью кода python для сканирования данных с первой до последней страницы на этом веб-сайте.

Веб-сайт: https://www.gebiz.gov.sg/scripts/main.do?sourceLocation=openarea&select=tenderId

Мой код python:

from bs4 import BeautifulSoup import requests import sys import mechanize import pprint import re import csv import urllib import urllib2 browser = mechanize.Browser() browser.set_handle_robots(False) url = 'https://www.gebiz.gov.sg/scripts/main.do?sourceLocation=openarea&select=tenderId' response = browser.open(url) html_doc = response.read() rows_list = [] table_dict = {} soup = BeautifulSoup(html_doc) table = soup.find("table", attrs={"width": "100%", "border": "0", "cellspacing": "2", "cellpadding": "3", "bgcolor": "#FFFFFF"}) tr_elements = table.find_all("tr", class_=re.compile((ur'(row_even|row_odd|header_subone)'))) table_rows = [] for i in range(0, len(tr_elements)): tr_element = tr_elements[i] td_elements_in_tr_element = tr_element.find_all("td") rows_list.append([]) for j in range(0, len(td_elements_in_tr_element)): td_element = td_elements_in_tr_element[j] table_elements_in_td_element = td_element.find_all("table") if len(table_elements_in_td_element) > 0: continue rows_list[i].append(td_element.text) pprint.pprint(len(table_elements_in_td_element)) pprint.pprint(rows_list) rows_list.remove([]) for row in rows_list: table_dict[row[0]] = { #'S/No.' : row[1], 'Document No.': row[1] + row[2], 'Tenders and Quotations': row[3] + row[4], 'Publication Date': row[5], 'Closing Date': row[6], 'Status': row[7] } pprint.pprint(table_dict) with open('gebiz.csv', 'wb') as csvfile: csvwriter = csv.writer(csvfile, dialect='excel') for key in sorted(table_dict.iterkeys()): csvwriter.writerow([table_dict[key]['Document No.'], table_dict[key]['Tenders and Quotations'], table_dict[key]['Publication Date'], table_dict[key]['Closing Date'], table_dict[key]['Status']]) 

Каждая помощь с вашей стороны будет высоко оценена.

One Solution collect form web for “Как перемещаться по HTMl-страницам, которые имеют пейджинг для своего контента с помощью Python?”

Как видно на этой странице , вам необходимо взаимодействовать с java-скриптом, который вызывается кнопкой « Go или « Next Page . Для кнопки Go вам нужно каждый раз заполнять текстовое поле. Вы можете использовать разные подходы для работы над этим:

1) Selenium – автоматизация веб-браузера

2) spynner – программный модуль просмотра веб-страниц с поддержкой AJAX для Python, а также посмотрите здесь

3) Если вы знакомы с c #, он также предоставляет компонент webBrowser, который поможет вам щелкнуть по элементам html. (например, здесь ). Вы сохраняете содержимое html каждой страницы, а затем обходите их с автономных страниц.

  • Использование Mechanize (Python) для заполнения формы
  • Сосредоточение внимания на конкретных результатах при очистке Twitter с помощью Python и Beautiful Soup 4?
  • Вложенные для петли с неравными объектами
  • как получить tbody из таблицы из красивого супа python?
  • BeautifulSoup: получить содержимое конкретной таблицы
  • как извлечь текст в теге font с помощью beautifulsoup
  • Общий отказ сервера SOCKS при переключении с использованием стебля
  • Красивый суп - не удалось создать csv и текстовые файлы после очистки
  • Необходимо очистить информацию с веб-страницы с помощью кнопки «показать больше», каких-либо рекомендаций?
  • очистить данные с веб-сайта, которые перешли на следующую страницу при прокрутке вниз с помощью Python и BeautifulSoup
  • selenium python webscrape терпит неудачу после первой итерации
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.