我不断地碰壁。有谁能告诉我如何使用Selenium从一个网站抓取多个页面,而不必一遍又一遍地重复我的代码吗。在
以下是我当前的代码:
RegionIDArray = ['de/7132/New-York-City/d687-allthingstodo', 'de/7132/London/d737-allthingstodo']
class Crawling(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.set_window_size(10, 10)
self.base_url = "http://www.jsox.de/"
self.accept_next_alert = True
def test_sel(self):
driver = self.driver
delay = 3
for reg in RegionIDArray:
page = 0
driver.get(self.base_url + str(reg))
for i in range(1,4):
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
如果我运行这个代码,我只得到伦敦的结果,而不是第二城市纽约的结果。在
现在,我可以通过一遍又一遍地重复我的代码,对每个单独的网站页面进行爬网,然后将每个数据帧的结果连接在一起,但这看起来很不和谐。我想知道有没有人有更快的方法或建议?在
欢迎任何反馈:)
编辑
我根据对Anil的评论修改了我的代码。Selenium现在为纽约和伦敦打开了页面,但它只为伦敦提供了结果。知道吗,原因是什么?在
修改代码:
^{pr2}$
Python循环由缩进控制。在
你的for循环
将循环遍历所有列表项,当它退出时,
reg
指向最后一项,即伦敦。所以你只能拿到最后一件相反,您只需要将
^{pr2}$driver
部分放入for循环中相关问题 更多 >
编程相关推荐