from bs4 import BeautifulSoup
import time
#import requests
import urllib.request,re
#import pandas as pd
#import numpy as np
import csv
def crawlcontents():
url = 'https://www.tripadvisor.com/ShowTopic-g983296-i13236-k11538516-Rent_from_LOTTE_standard_or_mystery_option-Jeju_Island.html'
html = urllib.request.urlopen(url).read().decode()
# print(html)
soup = BeautifulSoup(html,'html.parser')
# print(soup)
div = soup.select_one('#SHOW_TOPIC > div.balance > div.firstPostBox > div > div > div.postRightContent > div.postcontent > div.postBody')
div.select_one('script').decompose()
postcontent = div.text.strip()
postcontent = re.sub(r'\n+', ' ',postcontent)
print(postcontent)
crawlcontents()
这是在旅行网站中抓取的。 我需要一个脚本,但错误是:
python'NonType'对象没有属性'decompose'
我该怎么改变?
答案 0 :(得分:0)
我想你想要"神秘选项似乎有一个很好的价格优惠 - 但你不知道你会得到哪辆车你采取哪一个?结果会好吗?"作为输出对吗?您尝试使用分解来删除标记,但这不是必需的。
如果这是您想要的输出," div"是结果集。我不认为你可以再次运行select_one。在这种情况下,你甚至不需要重新开始。试试这个:
#Remove the below
div.select_one('script').decompose()
#Include the below
postcontent = div[0].text.strip().replace('\n',' ')
您必须使用元素div [0]而不是结果集div。 strip()删除末尾的空格,而replace删除两个注释字符串之间的空格。