Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不要段落之间留空格:Python_Python_Python 2.7_Selenium_Web Scraping_Web Crawler - Fatal编程技术网

不要段落之间留空格: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)