不要段落之间留空格:Python
我正在使用以下代码从一个新闻网站上抓取新闻文章:不要段落之间留空格:Python,python,python-2.7,selenium,web-scraping,web-crawler,Python,Python 2.7,Selenium,Web Scraping,Web Crawler,我正在使用以下代码从一个新闻网站上抓取新闻文章: import mechanize from selenium import webdriver from bs4 import BeautifulSoup url = "http://www.thehindu.com/archive/web/2012/06/19/" link_dictionary = {} driver = webdriver.Firefox() driver.get(url) soup = BeautifulSoup(dr
import mechanize
from selenium import webdriver
from bs4 import BeautifulSoup
url = "http://www.thehindu.com/archive/web/2012/06/19/"
link_dictionary = {}
driver = webdriver.Firefox()
driver.get(url)
soup = BeautifulSoup(driver.page_source)
for tag_li in soup.findAll('li', attrs={"data-section":"Editorial"}):
for link in tag_li.findAll('a'):
link_dictionary[link.string] = link.get('href')
print link_dictionary[link.string]
urlnew = link_dictionary[link.string]
brnew = mechanize.Browser()
htmltextnew = brnew.open(urlnew).read()
articletext = ""
soupnew = BeautifulSoup(htmltextnew)
for tag in soupnew.findAll('p'):
articletext += tag.text
print articletext
driver.close()
我得到了期望的结果,但我希望在一行中有一篇特别的新闻文章。对于某些文章,我将整篇文章放在一行中,而在其他文章中,我将得到不同的段落。有人能帮我解决这个问题吗??我是python编程新手。感谢和问候。这可能与特定网站的HTML中管理空白的方式有关,而且并非所有网站都会对其内容使用“p”标记。您最好的选择可能是执行正则表达式替换,以消除额外的空格(包括换行符) 在文件的开头,导入: 然后,在构建articletext后,添加以下代码:
print re.sub('\s+', ' ', articletext, flags=re.M)
您可能还想从中可能包含的其他元素中提取文本。我应该在何处以及如何定义
re
?我正在使用的站点正在使用p
标记作为其内容。另外,对于每一个p
标签,我会为一些文章获得一个新行,而不会为其他文章获得一个新行。我希望这个问题得到解决。你能帮帮我吗?
print re.sub('\s+', ' ', articletext, flags=re.M)