2016-12-31 2 views
0

Я хочу скопировать информацию о продукте с этого сайта: http://megabuy.vn/Default.aspx.Как очистить тег под тегом javascript?

Мое решение - очистить сайт в соответствии с структурой сайта. Поэтому сначала я должен очистить все ссылки об общей категории, прежде чем идти глубже в подкатегорию, а затем на каждый конкретный продукт.

У меня проблемы выскабливание все ссылки общих категорий, таких как:

  • Фантхиет би ван Фонг
  • может хижина ам
  • сделать да помет Nha BEP

и т.д ...

Я думаю, проблема в том, что эти ссылки находятся под тегом java script.

Вот мой код:

from bs4 import BeautifulSoup 
import requests 
import re 
def web_scrape(url): 
    web_connect = requests.get(url) 
    text = web_connect.text 
    soup = BeautifulSoup(text,"html.parser") 
    return soup 
homepage = web_scrape("http://megabuy.vn/Default.aspx") 
listgianhang = homepage.findAll("a", class_=re.compile("ContentPlaceholder")) 
len(listgianhang) 

я получил результат: 0

+0

Итак, вы просмотрели структуру страницы в браузере и определили, что ссылки вложены в , и вы хотите знать, как с этим бороться? – clearlight

ответ

0
import requests, bs4, re 

r = requests.get('http://megabuy.vn/Default.aspx') 

soup = bs4.BeautifulSoup(r.text, 'lxml') 
table = soup.find(id='ctl00_ContentPlaceHolder1_TopMenu1_dlMenu') 
for a in table('a',href=re.compile(r'^http')): 
    link = a.get('href') 
    text = a.text 
    print(link, text) 

из:

http://megabuy.vn/gian-hang/thiet-bi-van-phong THIẾT BỊ VĂN PHÒNG 
http://megabuy.vn/gian-hang/may-fax Máy Fax 
http://megabuy.vn/gian-hang/may-fax/hsx/Panasonic Panasonic 
http://megabuy.vn/gian-hang/may-chieu-man-chieu-phu-kien Máy chiếu Màn chiếu Phụ kiện 
http://megabuy.vn/gian-hang/may-chieu-projector Máy chiếu projector 
http://megabuy.vn/gian-hang/may-chieu-projector/hsx/Optoma Optoma 
http://megabuy.vn/gian-hang/may-chieu-projector/hsx/Sony Sony 
http://megabuy.vn/gian-hang/may-chieu-projector/hsx/ViewSonic ViewSonic 
http://megabuy.vn/gian-hang/may-chieu-man-chieu-phu-kien Xem thêm 
http://megabuy.vn/gian-hang/may-photocopy Máy photocopy 
http://megabuy.vn/gian-hang/may-photocopy- Máy photocopy 
http://megabuy.vn/gian-hang/may-photocopy-/hsx/Canon Canon 
http://megabuy.vn/gian-hang/may-photocopy-/hsx/Ricoh Ricoh 

Причина, почему вы не можете получить тег по классам класс тега генерируется JavaScript, исходный код html выглядит так:

   <a href="http://megabuy.vn/gian-hang/thiet-bi-van-phong" style="text-decoration:none;"> 
       <h2> 
       THIẾT BỊ VĂN PHÒNG 
       </h2> 

Настоящий код не содержит атрибут класса.

Смежные вопросы