【问题标题】:How to navigate a website and extract data with Python如何使用 Python 浏览网站并提取数据
【发布时间】:2016-03-11 06:41:44
【问题描述】:

我不是一个程序员。只是学习。我想使用 Python 从我国家的选举机构中提取(公共)选举数据。这是出于学术目的,但我也想发展我的编程技能。当然,我存储的所有数据都会公开发布。

我需要知道哪些 python 模块允许我进入网站并阅读 HTML 以识别我需要收集的某些数据。我只是希望得到一些指导方针,或者任何人有任何其他建议。

我希望为每个政党提取选票,并提供完全分解的其他数据:州/市/县/中心/表格。最后,我希望将其存储在 csv 或 xlsx 中(我想我会使用 openpyxlxlsxwriter)。

我的想法是制作一个程序:

1) 获取链接输入(e.g.);

2) 它标识 HTML 左侧每个州的链接(Amazonas、Anzoategui 等);

3) For 循环遍历每个状态并找到每个状态的 url(它是一个 HTML,所以我猜它会搜索并提取 <a> 标记,对吧?);

4) 与市政当局重复;

4) 与“Parroquia”(县)重复;

5) 对每个投票中心重复;

6) 最后为每个中心的每个投票桌(1、2、3...随便);

7) 接下来它存储每个政党的结果(eg. 手动我会按每个候选人的名字,识别政党的 LOGO 并存储它的投票(示例中为 30))。并且它还应该在最后存储“技术表”中的数据。

最终结果应该是存储所有数据:州、市、县、中心、表格,以及各方的结果。

【问题讨论】:

  • python中还有很多其他的库,比如beautifulsoup,lxml,selenium,phatomjs....
  • 感谢@SunitRana! Scrapy 似乎是一个绝妙的主意。

标签: python extract python-module data-extraction html-content-extraction


【解决方案1】:

以下内容会有所帮助:

from selenium import webdriver - 用于设置新的 webdriver 以访问网站。 (Chrome 版的效果很好)

from selenium.webdriver.common.by import By - 用于通过 css 选择器、标签名称、id 等选择 html 元素。

from selenium.webdriver.support.ui import WebDriverWait - 用于设置 url 加载的最短加载时间

from selenium.webdriver.support import expected_conditions as EC - 设置在等待 url 加载时采取行动的预期条件。例如,一个条件可能正在等待,直到所有 <a> 标记都已加载。

from selenium.webdriver.common.keys import Keys - 用于模拟按键或向 HTML 元素发送文本

from BeautifulSoup import BeautifulSoup - 用于解析下载的 HTML 文档

import re - 启用正则表达式

import xlwt - 用于写入 Microsoft Excel 工作簿

from xlutils.copy import copy - 用于创建 Microsoft Excel 工作簿的副本

导入时间 - 用于在 Python 代码执行时设置暂停时间

import xlrd - 用于从 Microsoft Excel 工作簿中读取

要下载的包:

  1. xlrd 0.9.4

  2. xlutils 1.7.1

  3. xlwt 1.0.0

  4. BeautifulSoup 4.4.1

  5. 硒 2.48.0

以上大部分都可以从python package index下载

【讨论】:

    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多