Scrapy Web爬网语法高位代码

2024-04-26 02:34:26 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,Stackoverflow

我想知道一个爬网语法高级代码?你知道吗

这就是某个标签中的某个东西是如何被爬网的

for sel in response.xpath('//ol/li/h3'):

但是,在语法上,像这样输出

cout << "\n Choose your action:" << endl;

这表明一个人需要多个标签来爬网一个特定的行,当一个人有多行代码时会发生什么,例如Just 2 Lines?你知道吗

接下来的问题是如何抓取空白?根据规范

<li class="li1">
   <div class="de1">
      &nbsp;
   </div>
</li>

空格是由表示的,我们怎么能不将其作为文本进行爬网呢?你知道吗

注意:我用Python编写代码并使用scrapywebcrawler/spider

谢谢你的阅读和帮助。你知道吗


Tags: 代码indivforresponse语法li标签
2条回答

我不确定我是不是在说显而易见的。。。你知道吗

XPATH选择器真正要遍历的是结构化文本,它需要相当干净的XML才能正常工作。你知道吗

很多XML本质上不是很容易让人阅读的,因此高层次的顺序和颜色有助于我们的眼睛跟随嵌套级别的标记:

<div></div>

XPath查询不关注标记之间的内容,而是关注标记本身(类型、属性等…)。因此,如果你抓取干净的HTML或XML,不管有多深或有多远,它都会把你放在你想要的标记集上(然后你可能会想自己处理内容)

格式良好的XML通常至少需要有一组根标记。所以你最应该看到的是。。。你知道吗

<html>
    <div>
            1
    </div>
    <div>
         2
    </div>
    <div>
        <h1>Hello</h1>
    </div>
</html>

所以呢

for sel in response.xpath('//'):

应该迭代所有3,并且

for sel in response.xpath('//div//h1'):

只会进入最后一个,踩在标签上,然后你可以准备好它的内容,如果你想的话。你知道吗


第二,HTML和XML实际上并没有给空白赋予太多的可信度(尽管您的示例看起来很漂亮,但这是为了您的利益,而不是代码的利益)。同样,可以告诉Python将空行和单个空格视为同一事物(XPath查询在默认情况下应该跳过空格)。你知道吗

编辑: 至于编码的实体,比如&nbsp;,大多数html包都有htmlEntityDecode功能,因为这些符号会导致其他区域的疼痛。您可能希望将实体解码为它们的普通字符,这些字符通常是空格、左括号、右括号等等。。。你知道吗

给你的最后一个建议是你之前的第一个答复。你知道吗

在那些代码框中(在snipplr.com网站)右上角有一组链接,可以让您选择如何查看代码段。您需要爬网到该链接,转到那里,然后解析纯文本版本。你知道吗

比较这两个链接…它们都指向同一篇文章,但第二个是非常可读的HTML源代码:

相关问题 更多 >