Сохранить и очистить несколько страниц с BeautifulSoup и пандами - PullRequest
0 голосов
/ 18 октября 2019

Я проверил свой код на ноутбуке Юпитера с этим кодом

...
rname = soup.find('p', 'con_tx')
#rnamelis = rname.findAll('p')
rname
from urllib.request import urljoin
  story=[]
  #review_text = lis[0].find('p').getText()
  #list_soup =soup.find_all('p', 'con_tx')
  story=rname.getText()
  story

, и он работал хорошо.

(результат) '전 여친 에 ...'

Но когда я попытался очистить несколько страниц

from bs4 import BeautifulSoup
from urllib.request import urlopen
from urllib.request import urljoin
import pandas as pd
import numpy as np
import requests


base_url = 'https://movie.naver.com/movie/bi/mi/basic.nhn?code='
pages =['177374','164102']
url = base_url + pages[0]
story = []
for n in pages:
    # Create url
    url = base_url + n

    # Parse data using BS
    print('Downloading page %s...' % url)
    res = requests.get(url)
    res.raise_for_status()
    html = urlopen(url)
    soup = BeautifulSoup(html, "html.parser")
    #print(soup.find('p', 'con_tx'))

    rname = soup.find('p', 'con_tx')
    story=rname.getText()
    data = {story}
    df = pd.DataFrame(data)
    df.head()
    df.to_csv('./moviestory.csv', sep=',', encoding='EUC-KR')

Появилось сообщение об ошибке.

ValueError: Конструктор DataFrame неправильно вызван!

Как мне исправить мой код? Площадь сканирования

1 Ответ

0 голосов
/ 18 октября 2019

Не уверен, что вы пытаетесь сделать, но я замечаю одну вещь: вы каждый раз перезаписываете свой фрейм данных. Также не знаю, почему вы инициализируете историю как список, а затем сохраняете ее как словарь в цикле.

from bs4 import BeautifulSoup
import pandas as pd
import requests


base_url = 'https://movie.naver.com/movie/bi/mi/basic.nhn?code='
pages =['177374','164102']

df = pd.DataFrame()
for n in pages:
    # Create url
    url = base_url + n

    # Parse data using BS
    print('Downloading page %s...' % url)
    res = requests.get(url)
    soup = BeautifulSoup(res.text, "html.parser")
    rname = soup.find('p', 'con_tx')
    story=rname.getText()
    data = [story]
    df = df.append(pd.DataFrame(data), sort=True).reset_index(drop=True)

df.to_csv('./moviestory.csv', sep=',', encoding='EUC-KR')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...