LINUX.ORG.RU

Парсинг html таблицы

 


0

3

Всем привет! Есть скрипт:

import ConfigParser
import sys
import json
import requests
import lxml
from BeautifulSoup import BeautifulSoup
from lxml import etree

conf = ConfigParser.RawConfigParser()
conf.read('/home/username/py_scripts/conf.cfg')

BASE_URL = conf.get('confluence', 'confluence_connection_string')
USERNAME = conf.get('confluence', 'confluence_user')
PASSWD = conf.get('confluence', 'confluence_password')

r = requests.get((BASE_URL), auth=(USERNAME, PASSWD))
soup = BeautifulSoup(r.content)
В странице которую я пытаюсь парсить есть таблица и она приезжает. Вопрос, как это сделать более читаемым, что бы дальше можно было заполнить соответствующие списки? Всем заранее спасибо!



Последнее исправление: gadzira (всего исправлений: 2)

В странице которую я пытаюсь парсить есть таблица и она приезжает.

есть таблица и она приезжает

matrixd
()
Ответ на: комментарий от gnunixon

Она в конфлюенсе, поэтому не глянуть.

gadzira
() автор топика

в рассылке наткнулся недавно https://github.com/buckyroberts/Parsley может поможет, сам не пробовал

есть таблица и она приезжает

у меня была какая-то тактика и я ею воспользовался

вот тут уже я не распарсил, куда приезжает ?

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 1)
Ответ на: комментарий от kukuruku

Так уже приехала)

#!/usr/bin/env python
#coding:utf-8

import ConfigParser
import sys
import json
import requests
import lxml
import datetime
from smtplib import SMTP
from BeautifulSoup import BeautifulSoup

conf = ConfigParser.RawConfigParser()
conf.read('/home/conf.cfg')

BASE_URL = conf.get('confluence', 'confluence_connection_string') 
USERNAME = conf.get('confluence', 'confluence_user')
PASSWD = conf.get('confluence', 'confluence_password')
SMTP_SERVER = conf.get('imap', 'imap_server_host_name')

r = requests.get((BASE_URL), auth=(USERNAME, PASSWD))
soup = BeautifulSoup(r.content)

name = []
mail = []
bday = []
cab = []

table = soup.find("table")
for row in table.findAll("tr"):
    cells = row.findAll("td")
    if len(cells) == 12:
       name.append(cells[3].find(text=True))
       mail.append(cells[4].find(text=True))
       bday.append(cells[7].find(text=True))
       cab.append(cells[9].find(text=True))
new_list = zip(name, mail, bday,cab)

gadzira
() автор топика
22 мая 2018 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.