Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 访问<;李>;使用Beautiful soup的没有类id的元素_Python_Html_Beautifulsoup_Html Parsing_Html Lists - Fatal编程技术网

Python 访问<;李>;使用Beautiful soup的没有类id的元素

Python 访问<;李>;使用Beautiful soup的没有类id的元素,python,html,beautifulsoup,html-parsing,html-lists,Python,Html,Beautifulsoup,Html Parsing,Html Lists,我正试图在最终结果下,在ul表格的li中刮去公司。源代码如下所示 import string import re import urllib2 import datetime import bs4 from bs4 import BeautifulSoup class AJSpider(object): def __init__(self): print ("initisizing") self.date = str(datetime.date.tod

我正试图在最终结果下,在ul表格的li中刮去公司。源代码如下所示

import string
import re
import urllib2
import datetime
import bs4
from bs4 import BeautifulSoup

class AJSpider(object):

    def __init__(self):
        print ("initisizing")
        self.date = str(datetime.date.today())
        self.cur_url = "https://youinvest.moneyam.com/modules/forward-diary/?date={date}&period=month"
        self.datas = []
        print ("initisization done")


    def get_page(self,cur_date):
        url = self.cur_url
        try:
            my_page = urllib2.urlopen(url.format(date = cur_date)).read().decode("utf-8")
            my_soup = BeautifulSoup(my_page, "html.parser")

        except:
            print ('Failed')
        return my_soup

    def get_final(self, soup_page):
        temp_data = []
        final_result_section = soup_page.find("h3", text="Final Result")
        print final_result_section

    def start_spider(self):
        my_page = self.get_page(self.date)
        self.get_final(my_page)

def main():

    my_spider = AJSpider()
    my_spider.start_spider()

if __name__ == '__main__':
    main()
我在stackoverflow中发现了一个类似的问题 ,但这里的这个确实有一个类id,这使事情变得容易多了


在我的场景中,如何从ul表中提取li元素?这里唯一的标识符实际上是h3标记的内容,这是最终结果,但它不是id,因此我不知道如何使用它。

通过文本查找
h3
元素并获得:



请注意,在BeautifulSoup的最新版本中,
text
参数被重命名为,但由于向后兼容,它们都可以工作。

为了提问者的利益,以下是此代码的两行输出,用于问题中的HTML片段:01 Sep 16 Hays PLC[HAS]2016年9月1日Alumasc集团有限公司[ALU]非常感谢。我试过了,但我得到了TypeError:find()不带关键字参数,我试过文本和字符串,请问这个错误是如何产生的?@Victor看起来你正在使用
BeautifulSoup
3-如果你有以下导入:
从BeautifulSoup导入BeautifulSoup
,你应该升级!通过:
pip安装beautifulsoup4
安装beautifulsoup4,并将您的导入从bs4导入Beautifulsoup更改为
。我确实使用bs4从bs4导入bs4BeautifulSoup@Victor好的,请编辑问题并发布完整的代码。
ul = soup.find("h3", text="Final Result").find_next_sibling("ul")
for li in ul.find_all("li"):
    print(li.span.get_text(), li.a.get_text())