我想问一下通过python爬行网页的问题

2024-09-30 04:30:47 发布

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

import requests
from bs4 import BeautifulSoup

def laptopspec():
    url = "https://search.shopping.naver.com/search/all.nhn?origQuery=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81&pagingIndex=1&pagingSize=40&productSet=model&viewType=list&sort=rel&frm=NVSHPRC&query=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81"
    html = requests.get(url).text

soup = BeautifulSoup(html, "html.parser")
tags = soup.find_all("li", {"class": "ad _model_list _itemSection"})

for idx, tag in enumerate(tags):
    print(idx, tags)


laptopspec()

通过这个代码,我可以得到一些我需要的信息。 现在我想通过一些关键字获得更具体的信息,比如gtx1050,我想打印包含该关键字的URL。我该怎么办


Tags: import信息urlsearchmodelhtmltags关键字
1条回答
网友
1楼 · 发布于 2024-09-30 04:30:47
import requests
from bs4 import BeautifulSoup

def laptopspec():
    html = requests.get(url).text
    url = "https://search.shopping.naver.com/search/all.nhn?origQuery=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81&pagingIndex=1&pagingSize=40&productSet=model&viewType=list&sort=rel&frm=NVSHPRC&query=%EA%B2%8C%EC%9D%B4%EB%B0%8D%EB%85%B8%ED%8A%B8%EB%B6%81"

soup = BeautifulSoup(html, "html.parser")
GTX = soup.find_all("div", {"class": "img_area"})

for idx, tag in enumerate(tags):
    print(idx, GTX)

links = []
for link in GTX:
    if link.has_attr('gtx'):
        links.append(link.get('href'))
        print(links)
laptopspec()

该代码查找类为“img\u area”的所有div,该类包含实际链接,创建一个名为links的空列表,然后将包含“GTX”的所有链接存储在该列表中

该网页的主要问题是,指向产品的链接以及图形卡和其他规格的说明存储在不同的类中。类中包含图形信息的链接指向“#”,它只是刷新页面

另一种方法是,如果你确切地知道你要找的是哪种型号的卡,而不是“gtx”你可以这样做

if link.has_attr('ASUS')

或者你到底在找什么。因为这个变量大多只包含型号和链接

这只是一个偶然的机会,GTX是在散列链接,这段代码实际工作时,寻找“GTX”,所以不能保证找到所有的你要找的,但我检查出的每个链接,迄今为止,从这个输出包含一个笔记本电脑与GTX卡耸耸肩

但希望这能帮你找到正确的方向。我对Python还是个新手,但我刚刚在BeautifulSoup做了一个项目,所以我想我应该试着帮点忙

相关问题 更多 >

    热门问题