为了账号安全,请及时绑定邮箱和手机立即绑定

使用 BeautifulSoup 抓取页面会产生奇怪的结果(最后是多个 </p>)。为什么?

使用 BeautifulSoup 抓取页面会产生奇怪的结果(最后是多个 </p>)。为什么?

摇曳的蔷薇 2021-06-06 05:53:46
我正在尝试使用 BeautifulSoup 抓取页面。我想保留<p></p>标签,以便以后将内容存储在 .xml 文件中,分为段落、标题等。不幸的是,结果有点出乎我的意料。这是它的样子:为什么</p></p>最后这么多?我习惯了看起来像这样的结构:<p>some paragraph... </p><p>next paragraph... </p>不是这样的:some paragraph... <p>next paragraph... <p></p></p>当我检查 Chrome 中的 HTML 结构时,一切看起来都很好:为什么会这样?这是我的代码:import osimport requestsfrom bs4 import BeautifulSouppayload = {'username': os.environ['POLITYKA_USERNAME'],'password': os.environ['POLITYKA_PASSWORD'],'login_success': 'http://archiwum.polityka.pl','login_error': 'https://archiwum.polityka.pl/art/grypa-nam niestraszna,378836.html'}login_url = 'https://www.polityka.pl/sso/login'base_url = 'http://archiwum.polityka.pl'example_url = 'https://archiwum.polityka.pl/art/sciganie- wnbsp;organach,378798.html'with requests.Session() as session:    session.headers={'User-Agent' : 'Mozilla/5.0'}    post = session.post(login_url, data=payload)    request = session.get(example_url)    soup = BeautifulSoup(request.content, 'html.parser')    box = soup.find('div', {'id' : 'container'}).find('div', {'class' : 'middle'}).find('div', {'class', 'right'}).find('div', {'class' : 'box'})    content = box.find('p', {'class' : 'box_text'}).find_next_sibling()    print(content)
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号