Таблица Python Scrape of Wikipedia затем экспортируется в CSV - PullRequest
0 голосов
/ 18 июня 2019

Я проследовал за учебником, чтобы очистить таблицу, а затем экспортировать данные в CSV-файл.Я получаю сообщение об ошибке через PyCharm, когда пытаюсь выполнить файл с сообщением

«Трассировка (последний вызов был последним): файл« I: /Scrape/MediumCode.py », строка 1, в запросах на импорт ModuleNotFoundError:Никакой модуль с именем 'questions' "

Я также предполагаю, что в коде и его логике есть другие ошибки, но это первая проблема, с которой я столкнулся и не могу идти дальше, не понимая, почему библиотека не распознается

успешно выполнил запросы на установку pip

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = 'https://en.wikipedia.org/wiki/Public_holidays_in_Switzerland'

uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

page_soup = soup(page_html, "html.parser")

containers = page_soup.findAll("table", {"class":"wikitable"})

filename = "holidays.csv"
f = open(filename, "w")

headers = "holiday, holiday_date"

f.write(headers)

for container in containers:
    holiday = container.table.tbody.tr.td.a["title"]

    name_container = container.findAll("a", {"class":"title"})
    holiday_name = name_container[0].text

    date_container = container.findAll("td")
    date = date_container[0].text.strip()

    print("holiday: " + brand)
    print("holiday_name: " + holiday_name)
    print("date: " + date)

    f.write(holiday + "," + holiday_name.replace(",", "|") + "," + date + "\n")

    f.close()

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Использование библиотеки pandas для сохранения данных таблицы выходных сохраните в файл holiday_data.csv и создайте CSV-файл в каталоге текущего проекта.

import requests
import pandas as pd

url = 'https://en.wikipedia.org/wiki/Public_holidays_in_Switzerland'
response = requests.get(url)

tables = pd.read_html(response.text)

# write holiday table data into `holiday_data` csv file
tables[0].to_csv("holiday_data.csv")

Установить библиотеку панд

pip3 install pandas

Если requests библиотека все еще не выдает ошибку в вашей системе, попробуйте это:

from urllib.request import urlopen as uReq
import pandas as pd

url = 'https://en.wikipedia.org/wiki/Public_holidays_in_Switzerland'
response = uReq(url)
tables = pd.read_html(response.read())
#select only holiday column
select_table_column = ["Holiday"]
'''
    #or select multiple columns 
    select_table_column = ["Holiday","Date"]

'''
# filter table data by selected columns
holiday = tables[0][select_table_column]

# # write holiday table data into `holiday_data` csv file and set csv header
holiday.to_csv("holiday_data.csv",header=True)
0 голосов
/ 19 июня 2019

Используя ваш код, я могу получить page_html просто отлично.Так что вашей системе по какой-то причине не нравится urllib.request.Обратите внимание, что request не совсем то же самое, что requests.Насколько я понимаю, requests построен поверх urllib3, тогда как urllib.request находится в стандартной библиотеке, хотя оба они указывают на некоторые общие черты.

Работает ли этот коддля тебя?

from urllib import request

my_url = 'https://en.wikipedia.org/wiki/Public_holidays_in_Switzerland'
p = request.urlopen(my_url)
print(p.read())
...