0

次のコードを使用して、BeautifulSoup を使用して Web サイトを解析しています。Web サイトを解析してデータを印刷することはできますが、リンク内のデータの一部のみを印刷したいだけです。これをどのように行うことができるかについて、誰でも情報を提供できますか?

from bs4 import BeautifulSoup as bs
import argparse
import urllib
import urllib2
import getpass
import re
import requests

def update (url):
    print url
    req = urllib2.Request(url=url)
    try:
        f = urllib2.urlopen(req)
        txt = f.read()
        soup = bs(txt)
        print soup
        f.close()


def main ():
    #For logging
    print "test"
    parser = argparse.ArgumentParser(description='This is the update.py script created by test')
    parser.add_argument('-u','--url',action='store',dest='url',default=None,help='<Required> url link',required=True)
    results = parser.parse_args()# collect cmd line args
    url = results.url
    #print url
    update(url)
if __name__ == '__main__':
    main()

以下は現在の出力です。期待される結果を以下に示します。

current output :-

==== Test results ====

results are in \\data\loc

==== <font color="#008000">Build Combo</font> ====

{| border="1" cellspacing="1" cellpadding="1"
|-
! bgcolor="#67B0F9" scope="col" | test1
! bgcolor="#67B0F9" scope="col" | test2
! bgcolor="#67B0F9" scope="col" | test3
! bgcolor="#67B0F9" scope="col" | test4
|-
| [http:link.com]
|}

==== <font color="#008000">COde:</font> ====

Expected output:-

==== <font color="#008000">Build Combo</font> ====

{| border="1" cellspacing="1" cellpadding="1"
|-
! bgcolor="#67B0F9" scope="col" | test1
! bgcolor="#67B0F9" scope="col" | test2
! bgcolor="#67B0F9" scope="col" | test3
! bgcolor="#67B0F9" scope="col" | test4
|-
| [http:link.com]
|}
4

1 に答える 1

0

あなたが何を求めているのかよくわからないことを最初に認めますが、私が間違っていなければa、全体ではなく要素のみを印刷したいということだと思います。soupその場合は、find印刷したい要素が必要です。それから、それを印刷します。a要素を探していると仮定すると、更新メソッドは次のようになります。

def update (url):
    print url
    req = urllib2.Request(url=url)
    try:
        f = urllib2.urlopen(req)
        txt = f.read()

        soup = bs(txt)
        a_element = soup.find("a")
        print a_element

    f.close()
于 2013-03-09T08:24:24.267 に答える