Python请求从网站

时间:2016-06-20 16:55:30

标签: javascript python html web-scraping python-requests

我正在尝试从Metal Mulisha获取产品数据,我有一个产品ID列表,我需要查找数据。所以我使用python包和python包请求,搜索网址为“http://www.metalmulisha.com/shop/search/?q=20M35518334Z%20M45518403Z%20M45518415Z

然后我使用BeautifulSoup来查找我需要的类和数据,但是我收到一条错误消息,说明那里什么都没有。

所以我首先访问了Chrome中的网址,然后检查了元素,我需要的所有信息都在Chrome上的html中。

以下是Chrome展示的内容片段。

<div class="col-md-10 col-md-push-2">    
   <div data-rfkid="rfkid_7" data-keyphrase="20M35518334Z M45518403Z M45518415Z" class="rfk_sp rfk-sp">
       <div class="rfk_sp_container" data-nrp="2" data-ntp="2" data-pg="1" data-status="2" rfk_track_appear_once="f=sp,rfkid=rfkid_7,a=1,c=1">
       <div class="rfk_header">
              </div>
        <div class="rfk_message">
        <div class="rfk_msg_noresult">
           </div>
        <div class="rfk_msg_results">Top Results for "20m35518334z m45518403z m45518415z"</div>

它继续在第一个div下继续,我在<div data-rfkid=之后向你展示了很多信息。

一旦我运行我的python脚本找到第一个div,这就是我得到的。

<div class="col-md-10 col-md-push-2">
   <div data-keyphrase="20M35518334Z M45518403Z M45518415Z" data-rfkid="rfkid_7"></div>
    </div>

好像我需要的所有产品信息都没有。

这是我的python代码,所以你可以看到我做了什么。我使用的是python 3.5。

import requests
from bs4 import  BeautifulSoup 

url = "http://www.metalmulisha.com/shop/search/?q=20M35518334Z%20M45518403Z%20M45518415Z"
html = requests.get(url).text
bs = BeautifulSoup(html, 'lxml')

possible_links = bs.find('div', attrs={'class': 'col-md-10 col-md-push-2'})
print(possible_links)

我的问题是为什么python不能找到我需要的HTML?如果我在Chrome中检查网站,我看到它就好了,但是当我使用Python并请求网站时,它就不存在了。这与JavaScript有关吗?如果是这样,我该如何解决这个问题?

0 个答案:

没有答案