无法从网页上抓取类别标题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法从网页上抓取类别标题相关的知识,希望对你有一定的参考价值。

我在python中编写了一个scraper来从网页上获取不同的类别名称,但它无法从该页面获取任何内容。我很困惑,不能弄清楚我哪里出错了。任何帮助将非常感激。

以下是该网页的链接:URL

这是我到目前为止所尝试的:

from bs4 import BeautifulSoup
import requests

res = requests.get("replace_with_above_url",headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(res.text,"lxml")
for items in soup.select('.slide_container .h3.standardTitle'):
    print(items.text)

我所追求的一个类别名称的元素:

<div class="slide_container">
    <a href="/offers/furniture/" tabindex="0">
        <picture style="float: left; width: 100%;"><img style="width:100%" src="/_m4/9/8/1513184943_4413.jpg" data-w="270"></picture>
        <div class="floated-details inverted" style="height: 69px;">
            <div class="h3 margin-top-sm margin-bottom-sm standardTitle">
                Furniture Offers                         #This is the name I'm after
            </div>
            <p class="carouselDesc">
            </p>
        </div>
    </a>
</div>
答案
from bs4 import BeautifulSoup
import requests

headers = {
    'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding':'gzip, deflate, br',
'accept-language':'en-US,en;q=0.9',
'cache-control':'max-age=0',
'referer':'https://www.therange.co.uk/',
'upgrade-insecure-requests':'1',
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',
}
res = requests.get("https://www.therange.co.uk/",headers=headers)
soup = BeautifulSoup(res.text,'html.parser')
for items in soup.select('.slide_container .h3.standardTitle'):
    print(items.text)

试试这个

用户代理是不够的,因为标题是报废最重要的部分。如果您错过了任何标题,那么服务器ll会将您视为机器人。

另一答案

使用"html.parser"而不是"lxml"

soup = BeautifulSoup(res.text,"html.parser")

以上是关于无法从网页上抓取类别标题的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 从 Web 抓取数据时无法获取准确的元素类表

无法从网页中抓取产品标题

无法从网页中抓取所有公司名称

如何从浏览器中抓取网站?

如何从一个随机网站上抓取所有产品?

如何通过登录对网站执行网页抓取