我试图在一个旧的海军网页上抓取产品的URL。然而,它只是给出了产品列表的一部分,而不是全部(例如,当超过8个URL时,只给出8个URL)。我希望有人能帮我找出问题所在。
from bs4 import BeautifulSoup
from selenium import webdriver
import html5lib
import platform
import urllib
import urllib2
import json
link = http://oldnavy.gap.com/browse/category.do?cid=1035712&sop=true
base_url = "http://www.oldnavy.com"
driver = webdriver.PhantomJS()
driver.get(link)
html = driver.page_source
soup = BeautifulSoup(html, "html5lib")
bigDiv = soup.findAll("div", class_="sp_sm spacing_small")
for div in bigDiv:
links = div.findAll("a")
for i in links:
j = j + 1
productUrl = base_url + i["href"]
print productUrl
此页面使用JavaScript
加载元素,但它仅在向下滚动页面时加载。
它被称为“延迟加载”
。
你也必须滚动页面。
from selenium import webdriver
from bs4 import BeautifulSoup
import time
link = "http://oldnavy.gap.com/browse/category.do?cid=1035712&sop=true"
base_url = "http://www.oldnavy.com"
driver = webdriver.PhantomJS()
driver.get(link)
# ---
# scrolling
lastHeight = driver.execute_script("return document.body.scrollHeight")
#print(lastHeight)
pause = 0.5
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(pause)
newHeight = driver.execute_script("return document.body.scrollHeight")
if newHeight == lastHeight:
break
lastHeight = newHeight
#print(lastHeight)
# ---
html = driver.page_source
soup = BeautifulSoup(html, "html5lib")
#driver.find_element_by_class_name
divs = soup.find_all("div", class_="sp_sm spacing_small")
for div in divs:
links = div.find_all("a")
for link in links:
print base_url + link["href"]
理念:https://stackoverflow.com/a/28928684/1832058
问题内容: 我有以下代码,用于使用JSoup在Java中解析HTML。 问题是我只能检索首页搜索结果链接。我应该怎么做才能从Google搜索结果的其余页面获得链接。 问题答案: 如果要从第二页获得结果,请添加到URL。对于第三页使用,依此类推。
Q2 是否有任何其他健壮的方法,或者如果我可以使用页脚链接和我已经完成的方法来结束,如果一个页面肯定是一个联系我们的页面?
我正在尝试使用Microsoft Graph API从AD检索所有用户。 https://graph.microsoft.com/v1.0/users 但是这只是从整个用户列表中返回一些前n行。 我猜它在那里使用了一些分页。但没有找到如何在查询中指定页码或这些详细信息作为参数。 https://learn.microsoft.com/en-us/graph/api/user-list?视图=图形-
我们应该如何从kafka集群/动物园管理员处检索所有代理(已连接/已断开连接)的完整详细信息? 我发现以下方法只获取活动代理,但我想知道以前在集群中服务的代理的IP地址,但它现在已断开连接 以下代码片段给出了活动代理的列表: 输出: 我的机器-1:端口 我的机器-2:端口 我的机器-3:端口 我的机器-4:端口 我需要多节点 kafka 集群中所有已连接/已断开连接的代理的信息
我正在尝试使用查询检索dynamodb表中的所有项。下面是我的代码: 但是,我收到以下错误: 我的代码非常简单,出自boto dynamodb2文档,因此我不确定为什么会出现上述错误。任何见解都将受到赞赏(这是新的,有点迷失)。谢谢 编辑:我有一个散列键和一个范围键。我能够通过特定的哈希键进行查询。例如 但我如何检索所有项目?
我的代码不会获取这样的链接。使用doc.select也没有帮助。我的问题是,如何从页面中获得所有链接? 编辑:我想我知道问题出在哪里了。我遇到麻烦的页面写得很糟糕,HTML验证器抛出了大量的错误。这会引起问题吗?