weixin_47234335 2021-10-20 00:23 采纳率: 100%
浏览 35
已结题

采用BeautifulSoup库无法解析到网址信息,求解决方法

网址源码如下:

<span class="company-page-item-right cmpweb">
 <a target="_blank" href="http://www.gmgitc.com">www.gmgitc.com</a>
</span>

通过BS解析后,无法获取a标签内容

import requests
from bs4 import BeautifulSoup

intro_url = 'https://xinsanban.eastmoney.com/F10/CompanyInfo/Introduction/831039.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\
            /537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'}
resp = requests.get(intro_url, headers=headers, timeout=1)
print(bs)
___________________________________________________________________________________________________
<li class="even">
<span class="company-page-item-left ">公司网址</span>
<span class="company-page-item-right cmpweb"/>
</li>



  • 写回答

2条回答 默认 最新

  • 关注

    因为这个网页中的公司网址是通过js代码来动态更新的。
    requests只能获取网页的静态源代码,动态更新的内容取不到。
    对于动态更新的内容要用selenium 来爬取。

    在页面上点击右键,右键菜单中选 "查看网页源代码"。

    img


    这样看到的才是网页的静态源代码。

    img

    可以看到这个网页的静态源代码中没有你需要的<a target="_blank" href="http://www.gmgitc.com">www.gmgitc.com</a>
    说明该页面的内容是动态更新的,要用selenium 来爬取,比如:.

    from selenium import webdriver
    import time
    from bs4 import BeautifulSoup
    driver = webdriver.Chrome()
    intro_url = 'https://xinsanban.eastmoney.com/F10/CompanyInfo/Introduction/831039.html'
    driver.get(intro_url)
    time.sleep(3)
    html = driver.page_source
    soup=BeautifulSoup(html,'lxml')
    req=soup.select('span.company-page-item-right.cmpweb')[0]
    print(req)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月28日
  • 已采纳回答 10月20日
  • 创建了问题 10月20日

悬赏问题

  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题