我想问一下通过python进行网络爬网

时间:2018-11-19 07:02:05

标签: python python-3.x

Connection String

通过此代码,我可以获得所需的一些信息。 现在,我想通过诸如 GTX 1050 之类的关键字获得更具体的信息,并且我想打印包含该关键字的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() 。我该怎么办?

1 个答案:

答案 0 :(得分:0)

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_area”类的所有div,该类包含实际的链接,创建一个称为链接的空列表,然后将所有包含“ GTX”的链接存储在该列表中。

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

另一种方法是,如果您确切知道要查找的具有卡的模型,则可以像

一样代替“ gtx”
if link.has_attr('ASUS')

或者您实际要寻找的东西。因为该变量主要只包含型号和链接。

这是偶然的,因为GTX在散列链接中才可以在寻找“ GTX”时真正起作用,因此不能保证找到您要查找的所有链接,但我已经检查了每个链接,因此远离此输出的地方包括一台带有GTX卡的笔记本电脑。 耸肩

但是希望这可以帮助您朝正确的方向发展。我对Python还是很陌生,但是我只是在BeautifulSoup中做一个项目,所以我想我会尽力的。