我正在尝试从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有关吗?如果是这样,我该如何解决这个问题?