2023-05-爬虫问题

现在在“大粽dp”提取信息,目前似乎可以直接提取信息,而不需要大量帖子中提及到的加载字典(可能是不太懂而已。。),然后将乱码解释出来的情况。但是遇到奇怪的问题是,该网站中的部分信息无法提取。例如:“口味:4.9”、“大家认为”、评论信息等。发现是1)html中的 div class="brief-info"、div id="comment" class="mod comment" data-render="1",类似标签无法提取;2)无法正常提取内容,内容中有从其他地方来的东西。

目前,尝试过用的python模块有:1)BeautifulSoup;2)parsel,然后用selector语法;3)selenium。无法正确提取网页内容。其次,在测试中有遇到过大众点评的滑块验证,但是点进去,手动滑一下就能暂时解决问题(这暂时不重要)。

谢谢!

代码如下


import requests
import parsel

#url = "https://www.dianping.com/shop/H4Fpx76KjxrRpOaS"

headers ={             #模拟浏览器头部信息,向豆瓣服务器发送消息
    "User-Agent":"",
    "Cookie":"",
    "Accept":"",
    "Referer" : "https://www.dianping.com/guangzhou/ch10/r22o3",
    "Host" : "www.dianping.com"
}

response = requests.get(url=url,headers=headers)

# print(response.text)

selector = parsel.Selector(response.text)

print(selector)

CommentScore = selector.css('#comment_score .item::text').getall()
# OverallSocre = selector.css('.brief-info .star-wrapper .mid-score socre-50::text').getall()

print(CommentScore)

那个URL返回的是整个网站吧,你想要的数据是后期渲染上去的。如果要获取需要的数据可以进入页面后按F12然后刷新,然后查找相应数据的对应链接。

好些网页都是动态渲染,就是页面出来后在通过js交互获取具体数据插入页面
建议使用selenium库进行爬取

您好,关于您提到的问题,可能有以下几种情况:

无法提取特定标签或内容
有些网站的HTML结构较为复杂,不同的页面可能会使用不同的标签和类名。这时候可以尝试使用开发者工具查看该页面的HTML结构,确定要提取的标签和属性,并使用相应的选择器语法进行提取。

如果仍然无法提取,可能需要进一步了解该网站的反爬虫策略,如是否设置了验证码、JS渲染等。

内容中包含其他来源的数据
有些网站在展示某些信息时,可能会从其他来源获取数据(如百度地图、外部API等),这些数据可能无法通过简单的爬虫技术获取。这时候可以尝试模拟人工操作,如使用Selenium自动化测试工具模拟用户浏览行为,或者手动分析网页源代码和网络请求,找到数据来源并进行爬取。

大众点评的滑块验证
如果遇到大众点评的滑块验证,可以尝试使用Selenium等自动化测试工具模拟用户行为,进行滑块验证。另外,也可以尝试使用IP代理池等技术绕过反爬虫策略。

又有滑块又要登陆,所以只能使用selenium来实现,然后获取到网页源码,使用BeautifulSoup对网页源码进行解析即可。在确定需要的数据在网页中哪个位置时,建议结合获取到的网页源码一起进行分析,因为浏览器看到的和实际获取到的网页源码还是有些区别的。

尝试使用lxml解析器或html5lib解析器,它们可以处理一些非标准的HTML代码