【发布时间】:2020-07-22 04:59:05
【问题描述】:
当我使用scrapy时,我正在尝试从网站中提取文本
print("hello")
data = response.xpath('//div[@class="content-blog"]/text()').get()
print(data)
输出是
hello
删除 /text() 会将整个 HTML 内容作为输出。
<div class="content-blog">
<p><strong><i>Title</i></strong><br>
Text paragraph1</p>
<p>Text paragraph2</p>
<p>Text paragraph3<br>
Text paragraph4</p>
<style id="bwg-style-0"> #bwg_container1_0 #bwg_container2_0 .bwg-container-0 { width: 1004px; justify-content: center; margin-left: auto; margin-right: aut
o; background-color: rgba(255, 255, 255, 0.00); padding-left: 4px; padding-top: 4px; max-width: 100%; } #bwg_container1_0 #bwg_container2
_0 .bwg-container-0 .bwg-item { justify-content: flex-start; max-width: 200px; } #bwg_container1_0 #bwg_container2_0 .bwg-container-0 .bwg-item > a { margin-righ
t: 4px; margin-bottom: 4px; } #bwg_container1_0 #bwg_container2_0 .bwg-container-0 .bwg-item0 { padding: 0px; background-color: #FFFFFF; border: 0px none #CCCCCC;
opacity: 1.00; filter: Alpha(opacity=100); border-radius: 0; box-shadow: 0px 0px 0px #888888; } #bwg_container1_0 #bwg_container2_0 .bwg-container-0 .bwg-item1 im
g { max-height: none; max-width: none; padding: 0 !important; } @media only screen and (min-width: 480px) { #bwg_container1_0 #bwg_container2_0 .bwg-container-
0 .bwg-item0 { transition: all 0.3s ease 0s;-webkit-transition: all 0.3s ease 0s; } #bwg_container1_0 #bwg_container2_0 .bwg-container-0 .bwg-item0:hover { -ms-trans
form: scale(1.1); -webkit-transform: scale(1.1); transform: scale(1.1); } } #bwg_container1_0 #bwg_container2_0 .bwg-container-0 .bwg-item1 { padding-top
: 90%; } #bwg_container1_0 #bwg_container2_0 .bwg-container-0 .bwg-title2, #bwg_container1_0 #bwg_container2_0 .bwg-container-0 .bwg-ecommerce2 { color: #CCCCCC; font
-family: segoe ui; font-size: 16px; font-weight: bold; padding: 2px; text-shadow: 0px 0px 0px #888888; max-height: 100%; } #bwg_container1_0 #bwg_container2_0
.bwg-container-0 .bwg-play-icon2 { font-size: 32px; } #bwg_container1_0 #bwg_container2_0 .bwg-container-0 .bwg-ecommerce2 { font-size: 19.2px; color: #CCCCCC; }
</style> <div id="bwg_container1_0" class="bwg_container bwg_thumbnail bwg_thumbnails" data-right-click-protection="0" data-bwg="0" data-lightbox-url=.... </div>
当我使用 response.css() 时也会发生同样的事情。
我要提取的文本位于多个 <p> 标记中,这些标记位于 <div class="content-blog"> 标记下。
如何仅从网站获取文本而不获取 HTML 的其余部分? 我正在使用 scrapy 版本 - 2.2.0 和 Python 版本 - 3.7
【问题讨论】:
-
您能给我们提供一个 URL 和您需要的确切数据吗?您选择的 xpath 选择器只会获取 div 标签元素本身内的文本,而不是像
.
这样的子标签
标签: scrapy