如何在python中使用刮取的数据创建DataFrame?

时间:2018-07-22 10:08:19

标签: python pandas web-scraping beautifulsoup

我正在尝试制作一个网络抓取器,以提取数据并将其归类到熊猫数据框中。

我所有的代码:

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

class CaseCrawler:
    def __init__(self, starting_url, depth):
        self.starting_url = starting_url
        self.depth = depth
        self.cases = []

    def crawl(self):
        self.get_case_info(self.starting_url)
        return 

    def get_case_info(self, link):
        # opening up connection
        uClient = uReq(link)
        page_html = uClient.read()
        uClient.close()

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

        case = page_soup.findAll("div", {"class":"bbWrapper"})


        for point in case:
            name = point.b.text
            body = point.text
            tag_block = page_soup.findAll("div", {"class":"blockStatus-message"})

            for tagger in tag_block:
                 tag_title = tagger.findAll("dl", {"class":"pairs pairs--columns pairs--spaced pairs--fixedSmall"})


        #pandas dataframe
        ##tag_df = pd.DataFrame(tag_title, index=tag_title.dt)
        print(tag_title[0])



        tag_df.to_csv("temp.csv")

crawler = CaseCrawler('https://www.yargikararlari.net/konu/iikya-gore-ortakligin-giderilmesi-davasi-acilabilmesi-icin-usulune-gore-borclu-ortagin-alacaklisi-iik-m-121.350/', 0)
crawler.crawl()

在代码的最后,我想用大熊猫在数据框中抓取一块信息

这是我这个网站的问题所在: 2rows 2columns

当我运行代码时,它会创建缩进和不必要的csv文件:csv file

预先感谢...

1 个答案:

答案 0 :(得分:0)

问题在于数据帧的构造。 $(document).on('click', '.btn-vote', function(e){ //event handling goes here }); 是一个结果集,没有属性tag_title。另外,您要抓取的页面中的代码还有很多多余的空白。正如我上面建议的,使用“ lxml”作为传递者并更改行:

dt

tag_df = pd.DataFrame(tag_title, index=tag_title.dt)

,我认为您将更接近您想要的。