Python 访问<;李>;使用Beautiful soup的没有类id的元素
我正试图在最终结果下,在ul表格的li中刮去公司。源代码如下所示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
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())