python - 在Selenium中查找隐藏的超链接(Python网络爬虫)

标签 python selenium web-scraping web-crawler

我想使用 Selenium 跟踪化妆品品牌的销售数据,但我很难找到下一页的超链接。

https://www.gsshop.com/shop/sect/sectS.gs?isectid=1425746&brandid=143878&lseq=407585

在这个链接中,有3页,如果我点击页面底部的2或3,我可以浏览下一页。

但是,当我检查html代码时,它只返回 <a data-index="2">2</a>形式。所以我在“a”标签中找不到任何指向下一页的超链接。

有什么方法可以找到下一页的链接吗?

我的临时代码在这里。 soup.find_all('nav',{'class':'paging'})[0]是有关下一页的 html 代码。

from selenium import webdriver
from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome('C:/Users/Administrator/Desktop/Python/chromedriver.exe')
import time
import csv
import pandas as pd
from datetime import datetime
import sqlite3

from bs4 import BeautifulSoup
from urllib.request import urlopen

now = datetime.now()
nowDate = now.strftime('%Y-%m-%d')
nowDate

url_list = []
urlname = []

url_list.append('https://www.gsshop.com/shop/sect/sectS.gs?isectid=1425746&brandid=143878&lseq=407585')


dataset_count = 0

for url in url_list:
    driver.get(url)
    time.sleep(5)

    html = driver.page_source
    soup = BeautifulSoup(html, 'html.parser')

    soup.find_all('section',{'class':'prd-list'})[0] 

    soup.find_all('nav',{'class':'paging'})[0]

    break

soup.find_all('nav',{'class':'paging'})[0]

最佳答案

点击分页链接。引发WebDriverWaitelement_to_be_clickable() 并使用 while 循环将 page_number 传递给 click()。

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//a[@data-index='"+ str(page_num)+ "']"))).click()
<小时/>

这是其工作原理的完整代码。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from bs4 import BeautifulSoup
driver=webdriver.Chrome()
driver.get("https://www.gsshop.com/shop/sect/sectS.gs?isectid=1425746&brandid=143878&lseq=407585")

page_num=2

while True:
    time.sleep(5)
    data=driver.page_source
    soup=BeautifulSoup(data,'html.parser')
    product_name=[item.text.replace('\n','').replace('\t','') for item in soup.select('.prd-name')]
    product_price=[item.text.replace('\n','').replace('\t','') for item in soup.select('.set-price')]
    print(product_name)
    print(product_price)
    if page_num>3:
        break
    WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//a[@data-index='"+ str(page_num)+ "']"))).click()
    page_num=page_num+1

输出:

['[TV쇼핑][센텔리안24] 동국제약 마데카크림 시즌4 크림 집중 패키지', '[TV쇼핑]동국제약 마데카크림 랩핑 마스크 36매 (체험분 한박스)', '[TV쇼핑]동국제약 센텔리안24 엑스퍼트 마데카 멜라캡처 기미관리앰플', '[TV쇼핑]동국제약 NEW 마데카 마스크팩 최신상! 103매', '[TV쇼핑]동국제약 마데카 크림 시즌4 스페셜 패키지', '[TV쇼핑]동국제약 마데카크림 랩핑 마스크 60매 (체험분 한박스)', '[TV쇼핑]동국제약 센텔리안24 엑스퍼트 마데카 멜라캡처 기미관리앰플', '[TV쇼핑][센텔리안24] 동국제약 마데카크림 시즌4 매니아 패키지', '[TV쇼핑]동국제약 마데카 크림 시즌4 특별구성', '[TV쇼핑]동국제약 센텔리안24 마데카 멜라캡처 기미관리앰플 더블구성', '꼬달리/제이준/뷰세라/닥터자르트外수고한 나를 위한 뷰티박스', '[TV쇼핑]동국제약 센텔리안24 마데카 파워앰플 (광채 집중관리)', '[TV쇼핑]동국제약 마데카크림 시즌4 15ml 5개', '[TV쇼핑][센텔리안24] 동국제약 마데카크림 시즌4 크림 매니아 패키지', '[TV쇼핑][센텔리안24] 동국제약 마데카크림 하이드라 3X 포뮬러', '동국제약 연휴특가 마데카 프리미엄 스킨케어 득템찬스 5,900~', '[TV쇼핑]동국제약 마데카 크림 시즌4 특별구성', '[TV쇼핑]동국제약 마데카 크림 시즌4 특별구성', '[TV쇼핑][센텔리안24] 동국제약 New 마데카 크림 마스크팩 101매', '[TV쇼핑]동국제약 마데카크림 시즌4 15ml 9개', '[동국제약]센텔리안24 마데카 세럼 50ml 1+1', '[TV쇼핑]동국제약 마데카 솔루션에센스퍼펙션 2개', '[TV쇼핑]동국제약 센텔리안24 마데카 리프팅 아이크림 5개', '[TV쇼핑]동국제약 마데카 UV크림 50ml 3개', '[동국제약]센텔리안24 마데카크림 하이드라 3x 포뮬러 15ml 3개', '[TV쇼핑]동국제약 마데카 스킨에멀젼 2개', '[TV쇼핑]동국제약 마데카 토닝에센스 300ml 3개', '[TV쇼핑]동국제약 센텔리안24 기미관리앰플 1박스+UV크림', 'GS특가 [동국제약]센텔리안24 마데카 인텐스리프팅아이크림15ml', '[동국제약]센텔리안24 타임에너지 미드나잇 리커버리 세럼 30ml', '[동국제약]센텔리안24 마데카 타임에너지 밸런싱 워터 130ml', '[TV쇼핑]동국제약 마데카 크림 시즌4 슬림구성(블러썸)', '[TV쇼핑]동국제약 센텔리안24 기미관리앰플 1박스+화이트닝 마스크 1박스', '[TV쇼핑]동국제약 엑스퍼트 멜라캡처 기미관리앰플 + 크림 랩핑 마스크', '[TV쇼핑][센텔리안24] 동국제약 마데카 크림 시즌4 - 최신상 마스크 구성', '[TV쇼핑]동국제약 마데카 크림 시즌4 스페셜 패키지', '[TV쇼핑]동국제약 테라톡스 더블핏 리프팅 크림', '[TV쇼핑]동국제약 센텔리안24 마데카 화이트닝 나비 마스크 10박스', '[TV쇼핑]센텔리안24 마데카 옴므 스킨2+크림2', '[TV쇼핑]동국제약 마데카 크림 시즌4 슬림구성(우디)', '[동국제약]센텔리안24 마데카 토탈 솔루션 스타터 키트', 'GS특가 [동국제약]센텔리안24 병풀추출물 마데카 넥크림 50ml', '[TV쇼핑]동국제약 테라톡스 더블핏 리프팅 마스크', '[TV쇼핑]동국제약 마데카 UV크림 15ml 5개', 'GS특가 [동국제약]센텔리안24 마데 인텐스수딩마스크 1Box(7매)', '[TV쇼핑][센텔리안24] 동국제약 마데카크림 시즌4 크림 집중 패키지', '[TV쇼핑]동국제약 마데카 크림 시즌4 퍼퓸에디션 50ml 4개', '[TV쇼핑]동국제약 마데카 크림 시즌4 슬림구성(머스크)', '[동국제약]센텔리안24 더마 마스크 원 10매', '[동국제약]센텔리안24 선크림 50ml 1+1', '동국제약 센텔리안24 마데카 스타톡 세럼 15ml 5개 (탄력, 광채)', '[동국제약]센텔리안24 마데카 기초 풀케어 선물세트(3X포뮬러)', '[동국제약]센텔리안24 마데카 마이크로 스타톡 세럼 50ml', '[TV쇼핑]동국제약 센텔리안24 마데카 병풀 미스트', '[TV쇼핑][1+1] 동국제약 센텔리안24 마데카 클렌징 워터 (병풀 클렌저)', '[TV쇼핑]동국제약 마데카 마스크 30매 (5매*6박스)', '[동국]센텔리안24 더마 마스크팩 쓰리 브라이트닝(미백)10개입', '[동국제약]센텔리안24 수분 수딩 세트+프리미엄 브러쉬 증정', '[동국제약]센텔리안24 병풀추출물 세럼 50ml+마데카크림 3X 15ml', '동국제약 센텔리안24 마데카 부스팅 오일 앰플 (1+1)']
['128,000원', '98,000원', '138,000원', '79,000원', '88,000원', '148,000원', '138,000원', '128,000원', '88,000원', '248,000원', '35,100원~', '52,000원', '26,100원', '169,000원', '59,000원', '5,900원~', '88,000원', '88,000원', '79,000원', '44,100원', '33,900원', '27,300원', '27,000원', '44,100원', '15,900원', '36,450원', '55,200원', '53,000원', '5,900원', '9,900원', '9,900원', '35,100원', '53,000원', '57,000원', '88,000원', '88,000원', '49,000원', '89,000원', '39,900원', '35,100원', '15,900원', '8,900원', '59,000원', '22,320원', '5,900원', '128,000원', '54,320원', '35,100원', '9,900원', '19,900원', '34,900원', '69,000원', '25,600원', '29,000원', '29,000원', '37,800원', '15,000원', '48,900원', '25,900원', '35,000원']
['[동국제약]센텔리안24 병풀추출물 마데카크림 50ml', '동국제약 센텔리안24 마데카 스타톡 세럼 15ml 5개 (탄력, 광채)', '[동국]센텔리안24 더마 마스크팩 쓰리 브라이트닝(미백)10개입', '[동국제약]센텔리안24 마데카크림 하이드라 3x 포뮬러 15ml', '[동국제약]센텔리안24 마데카 더마 마스크팩 투 1Box(10개입)', '[동국제약]센텔리안24 기초풀케어 세트+선물용 에코파우치 증정', '[동국제약]센텔리안24 마데카 인텐시브아이크림 25ml', '[동국제약]센텔리안24 병풀추출물 마데카 미스트 80ml 1+1', '[동국제약]센텔리안24 마데카 인텐스 수딩 마스크 1Box(7매입)', '[동국제약]센텔리안24 마데카크림 하이드라 3x 포뮬러 50ml', '[TV쇼핑]동국제약 센텔리안24 마데카 탄력 세럼 + 수딩 마스크', '동국제약 센텔리안24 마데카 부스팅 오일 앰플 (1+1)', '[동국제약]센텔리안24 마데카 듀얼 모이스처 크림 55g', '[동국제약]병풀추출물 마데카크림 마데카프렌즈 6종 택1 VIP특가', '[동국제약]센텔리안24 마데카 보태니컬클렌저 300ml', '[TV쇼핑]동국제약 센텔리안24 아쿠아 쿨링 세럼 + 아이크림 패키지', '[동국제약]센텔리안24 병풀추출물 마데카 UV 프로텍션 선스틱 15', '동국제약 센텔리안24 마데카크림 홀리데이에디션 5박스', '[동국제약]센텔리안24 병풀추출물 마데카크림 30ml', '[동국]센텔리안24 더마 마스크 쓰리 하이드레이팅(고보습)10개입', '[동국]센텔리안24 크림 3X 50ml 2개+리프팅 아이크림 15ml 2개', '[스킨알엑스][동국제약]센텔리안24 마데카인텐스 수딩마스크 1', '[동국제약]마데카 옴므 3종세트+크림 1ml 30매 추가 증정', '[TV쇼핑]동국제약 센텔리안24 마데카크림 홀리데이에디션 3박스', '[동국제약]센텔리안24 마데카크림 3X 15ml 5개+더마원1박스', '[동국제약]센텔리안24 병풀추출물 마데카 선크림 50ml', '[VIP]동국제약 파워 앰플 30ml', '[동국제약]센텔리안24 병풀추출물 마데카 옴므 남성용 선물세트', '[동국]센텔리안24 더마 마스크팩 쓰리 인텐시브(영양)10개입', '[동국제약]센텔리안24 마데카 크림 UV포뮬러 썸머스페셜 50ml', '[TV쇼핑][센텔리안24] 동국제약 마데카크림 시즌4 재구매 패키지', '동국제약 센텔리안24 기초 풀케어 선물 패키지', '[동국제약]센텔리안24 마데카 세럼 50ml + 마데카크림 30ml', '[동국제약]센텔리안24 선스틱 2개+아쿠아세럼 1ml 10매 증정', '[동국제약]센텔리안24 앰플 30ml + 마데카크림 시즌2 15ml', '[동국제약]마데카 옴므 스킨+크림+옴므 크림 1ml 10매 증정', '[동국제약]센텔리안24 병풀추출물 마데카크림 15ml', '[동국제약]센텔리안24 마데카 버블클렌저 150ml', '[TV쇼핑][센텔리안24] 동국제약 마데카 크림 시즌4 재구매 패키지', '[VIP]동국제약 선크림 50ml 1+1', '[동국제약]센텔리안24 마데카 솔루션에센스 120ml', '[동국제약]센텔리안24 마데카크림 하이드레이팅 포뮬러 15ml', '[동국제약]센텔리안24 영양케어 세트+프리미엄 브러쉬 증정', '[동국제약]센텔리안24 병풀추출물 마데카 에센스 플러스 선물세', '[동국제약]센텔리안24 알라딘필앤톡 2박스+3X 15ml+샘플증정', '[동국제약] 마데카 올인바디 바디로션 500ml', '[동국제약] 센텔리안24 병풀추출물 마데카크림 UV포뮬러 15ml', '[TV쇼핑]동국제약 센텔리안24 마데카크림 홀리데이에디션 10박스', '[동국제약]병풀추출물 마데카크림 3X 포뮬러 듀오 선물세트', '[스킨알엑스][동국제약]센텔리안24 더마마스크 브라이트닝 1박', '[동국제약]센텔리안24 마데카유브이 디펜스 선쿠션 25g (화이트)', '[동국제약]센텔리안24 마데카 마이크로 세럼 50ml', '[동국제약]김하늘의 뷰티시크릿 센텔리안24 外', '[동국제약]센텔리안24 아이크림 15ml 2개', '[TV쇼핑]동국제약 마데카 크림 시즌4 매니아 패키지', '[스킨알엑스][동국제약] 센텔리안24 마데카 크림 30ml', '[TV쇼핑][센텔리안24] 동국제약 마데카 크림 시즌4 재구매 패키지', '[TV쇼핑][센텔리안24] 동국제약 마데카크림 시즌4 재구매 패키지', '[TV쇼핑]동국제약 센텔리안24 마데카 멜라캡처 기미관리앰플 더블구성', '[동국제약]센텔리안24 아쿠아세럼 50ml+1ml 10매 추가 증정']
['22,410원', '34,900원', '15,000원', '10,400원', '20,000원', '69,000원', '19,920원', '30,600원', '5,900원', '23,120원', '29,000원', '35,000원', '19,200원', '15,900원', '19,000원', '88,000원', '9,900원', '59,000원', '16,110원', '15,000원', '49,900원', '15,000원', '39,900원', '37,050원', '35,900원', '13,600원', '19,800원', '39,000원', '15,000원', '21,600원', '119,000원', '43,900원', '42,930원', '19,900원', '41,800원', '26,900원', '9,000원', '19,000원', '118,000원', '34,000원', '19,900원', '10,800원', '39,900원', '55,200원', '35,900원', '13,900원', '9,900원', '107,100원', '39,900원', '15,000원', '11,900원', '29,000원', '39,900원~', '34,000원', '169,000원', '17,900원', '118,000원', '118,000원', '248,000원', '25,600원']
['[동국제약]선쿠션(화이트) 25g+리필 25g+선스틱+프렌즈 샘플 4종', '[동국제약]센텔리안24 마데카크림 파워 부스팅 포뮬러 50ml', '[스킨알엑스][동국제약]센텔리안24 마데카더마마스크팩 1Box(10', '[동국제약]센텔리안24 마데카크림 파워 부스팅 포뮬러 15ml', '[동국제약]센텔리안24 마데카 마이크로 스타톡 아쿠아 세럼 50ml', '[동국제약]센텔리안24 병풀추출물 마데카 파워앰플 30ml', '뷰티 방송 인기상품을 한자리에!', '[동국제약]센텔리안24 마데카 인텐스 리프팅 아이크림 15ml', '[동국제약]센텔리안24 워터밤 마데카크림 시즌2 15ml 1+1+1', '[스킨알엑스][동국제약]마데카더마 유스 리제너레이팅 세럼 50m', '[스킨알엑스][센텔리안24]마데카크림 하이드라 3x 포뮬러 15ml', '[동국제약]센텔리안24 마데카 솔루션에센스 퍼펙션 120ml', '[스킨알엑스][동국제약]센텔리안24 더마마스크 인텐시브 1박스', '[동국제약]센텔리안24 퍼펙트여행 세트+샘플 증정', '[동국제약]마데카프렌즈 3X포뮬러+크림4종 5매씩 추가 증정', '[동국제약]센텔리안24 핑크 선쿠션+리필', '[동국제약]센텔리안24 마데카 모이스쳐라이징 미스트 80ml', '[동국제약]센텔리안24 마데카 클렌저 선물세트(3X포뮬러)', '[스킨알엑스][동국제약] 센텔리안24 마데카 마이크로 세럼 50ml', '[스킨알엑스][동국제약]마스크팩1box+비오틴(90정)+크림1ml 3개', '[동국제약]센텔리안24 마데카크림 50ml+솔루션에센스 120', '[동국제약]마데카크림 파워부스팅 포뮬러 미스틱우디 50ml(탄력)', '[동국제약] 센텔리안24 클렌저 세트 +선물박스+쇼핑백', '[스킨알엑스][동국제약]센텔리안24 랩핑마스크 1박스(4매입)', '[스킨알엑스][동국제약]센텔리안24 더마마스크 하이드레이팅1박', '[스킨알엑스]센텔리안24 마데카크림 파워부스팅포뮬러 50ml(보', '[동국제약]센텔리안24 크림+에센스 세트+선물용 에코파우치 증정', '[스킨알엑스][동국제약] 마데카21 테카솔 안티더스트 클렌저 13', '[동국제약]센텔리안24 화이트선쿠션+리필+마데카 프렌즈 1.5ml 4', '[동국제약]센텔리안24 마데카 마이크로 스타톡 세럼 15ml', '[스킨알엑스]센텔리안24 마데카 보태니컬 클렌저 300ml', '[동국제약] 센텔리안24 마데카 유브이 디펜스 선쿠션 25g (핑크)', '[동국제약]센텔리안24 병풀추출물 마데카 선스틱 15g 1+1', '[동국제약]마데카크림 파워부스팅포뮬러 플로럴블러썸50ml(생기)', '[동국제약]센텔리안24 앰플 세트+샘플 증정', '[동국제약]센텔리안24 마데카 인텐시브아이크림 15ml', '[동국제약]센텔리안24 마스크팩 세트+선물용 에코파우치 증정', '[동국제약]센텔리안24 핑크 선쿠션+리필+마데카 프렌즈 1.5ml 4', '[동국제약]마데카크림 파워부스팅포뮬러 아로마틱머스크50ml보습', '[동국제약]센텔리안24 아이크림 15ml 1+1', '[동국제약]센텔리안24 솔루션에센스120ml 1+1', '[동국제약]센텔리안24 마데카 클렌저 선물세트(3X포뮬러)', '[동국제약]센텔리안24 세럼 세트+선물용 에코파우치 증정', '[동국제약]센텔리안24 크림 3X 세트+선물용 에코파우치 증정', '[동국제약]센텔리안24 선케어 세트+샘플 증정', '[동국제약]센텔리안24 아쿠아세럼 세트+샘플 증정', '[TV쇼핑][센텔리안24] 동국제약 마데카 크림 10개 시즌4 크림 패키지', '[TV쇼핑][센텔리안24] 동국제약 New 마데카 크림 시즌4 한정판 구성']
['33,900원', '60,000원', '12,000원', '27,000원', '32,000원', '29,800원', '39,900원~', '18,000원', '36,000원', '42,000원', '39,000원', '19,900원', '15,000원', '39,900원', '28,900원', '19,900원', '15,300원', '56,640원', '29,000원', '50,000원', '49,800원', '60,000원', '91,700원', '80,000원', '15,000원', '60,000원', '59,000원', '16,000원', '32,000원', '19,000원', '19,000원', '11,900원', '30,000원', '60,000원', '49,900원', '17,000원', '30,000원', '32,000원', '60,000원', '34,000원', '49,800원', '76,560원', '49,000원', '49,000원', '39,900원', '49,900원', '128,000원', '88,000원']

关于python - 在Selenium中查找隐藏的超链接(Python网络爬虫),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57964530/

相关文章:

Python 2.6 到 2.5 速查表

python - 使用 Sklearn 预测的线性回归不起作用。数据不正确

Selenium/hub 在 network_mode = "host"时无法识别 selenium/node-chrome-debug

python - 在 python pandas 中的 groupby 之后填写列中缺少的行

python - 如何使我的 Python 脚本成为系统命令并在 Windows 的任何目录中轻松运行它?

spring - 在 Spring Boot 中加载 chromedriver

java - 如何使用随机选择获取列表中元素的文本?

python - 为什么当我尝试打开 Google AdWords 时,Python 中的 Machenize 包会打开支持页面?

python - 如何像简单脚本一样以编程方式运行 scrapy 蜘蛛?

google-apps-script - 使用谷歌应用程序脚本访问nse选项链数据(公共(public)API)