簡體   English   中英

(美麗的湯)如何從HTML標簽提取數據

[英](Beautiful Soup) How to extract data from HTML tags

到目前為止,我已經開始了。 我無法從div獲取正常文本。

from BeautifulSoup import BeautifulSoup
import urllib2
get = BeautifulSoup(urllib2.urlopen("https://example/com/").read()).findAll('div', {'class':'h4 entry-title'})
import sys
for  i in get:
print i

請問如何從HTML中抓取數據? 我只需要這些顏色名稱和段落。

<div class="h4 entry-title">
<a href="https://example/com/01/">RED</a>
</div>
<p>
I am paragraph red
<p>

<div class="h4 entry-title">
<a href="https://example.com/02/">WHITE</a>
</div>
<p>
I am paragraph white
</p>


<div class="h4 entry-title">
<a href="https://example.com/03/">PINK</a>
</div>
<p>
I am paragraph pink
</p>

我的問題:

  1. 如何從該HTML中抓取數據? 我只需要文字和段落。

我需要在控制台中輸出:

RED I am paragraph red
WHITE I am paragraph white
PINK I am paragraph pink

  1. 如何將這些數據集自動導入到SQL文件中?

我想要的輸出數據庫表(名稱,描述):

name: RED,WHITE,PINK
description: I am paragraph RED, I am paragraph WHITE, I am paragraph PINK

回答問題一,這樣寫:

for div in BeautifulSoup(urllib2.urlopen("https://example/com/").read()).findAll('div', {'class':'h4 entry-title'}):
    for a in div.findAll('a'):
        print a.text
    for p in div.findAll('p'):
        print p.text

試試這個解決方案:

from BeautifulSoup import BeautifulSoup
import urllib2

(...)
connection = ...
cursor = connection.cursor()
(...)

bs = BeautifulSoup(urllib2.urlopen("https://example/com/").read())

names = []
descriptions = []
for title in bs.findAll('div', {'class': 'h4 entry-title'}):
    name = title.find('a').text
    description = title.find('p').text
    sdesc = description.split()
    sdesc[-1] = sdesc[-1].upper()
    names.append(name)
    descriptions.append(' '.join(sdesc))
    print name, description

cursor.execute("INSERT INTO table (name, description) VALUES (%s, %s)", (','.join(names), ', '.join(descriptions))
connection.commit()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM