requests-html 怎么获取对应的innerText

requests-html 怎么获取一个 标签的innerText

def stage_catch():
    session = HTMLSession()
    r = session.get('http://www.dmzx.com/manhua/358/')
    div = r.html.find('.subsrbelist')
    list_a = div[0].find('ul')[0].find('a')     # 找到对应目录列表
    for a in list_a:

        print(a)
        print(a.attrs)
        print(a.text)

        # pages = re.sub("\D", "", total_pages)
        # print(pages)
    pass
if __name__ == '__main__':
    stage_catch()

这个是我对应的节点

<a href="http://www.dmzx.com/manhua/358/2000089062.html" title="第360话" target="_blank">
    <span class="red">第360话</span> 
        (18页)
</a>
<Element 'a' href='http://www.dmzx.com/manhua/358/2000089062.html' title='第360话' target='_blank'>
{'href': 'http://www.dmzx.com/manhua/358/2000089062.html', 'title': '第360话', 'target': '_blank'}
全职猎人 (第360话) (18页)

这是我的三次输出。 我使用a.text 输出的时候不是

我想调用类似 a.innerText直接获取到innerText 也就是"(18页)",但是没有这个方法。

我暂时转成字符串然后处理对应的字符串了。。。。

我想知道对于这些python库我有什么办法测试他有什么对应的js中的方法。

我试了下dir(a) 获取到了方法,和text有关的都试了一次页发现不行。。。。

阅读 4.4k
2 个回答

如果你有jquery基础的话用pyquery库吧

据我了解, css selector是无法直接获得末尾text的.
另外将您的代码简化一些.

我能想到的代码是(获取全部a):

r=session.get('http://www.dmzx.com/manhua/358/')
a_ls=r.html.find('div.subsrbelist.center > ul > li > a')  

data=[]

for a in a_ls:
    chapter=' '.join(a.text.split(' ')[:-1])
    pages=a.text.split(' ')[-1]
    link=a.attrs['href']
    data.append({'chapter':chapter, 'pages':pages, 'link':link})

print(data)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题