from selenium import webdriver import csv # 时间库:可以控制延迟时间 import time url="https://tj.lianjia.com/" browser=webdriver.Chrome() # 窗口最大化 browser.maximize_window() browser.get(url) # 通过选择器找到相应标签 browser.find_element_by_css_selector("#keyword-box").send_keys("北辰区") # 模拟用户点击行为 browser.find_element_by_css_selector("#findHouse").click() # print(browser.page_source) # 控制页数 x = 1 # 控制条数 1-30 31-60 61-90 # while结束条件是判断是否到了最后一页 # 判断是否到了最后一页的标准是:下一页不能点击 # 当前源码中是否存在“pn-next.disabled” # 如果不存在,返回-1 # 如果返回-1,说明不是最后一页 # next = browser.find_element_by_css_selector("#content > div.leftContent > div.contentBottom.clear > div.page-box.fr > div > a:nth-child(8)") # print(next) # z= 0 # while(): # z += 1 # if z <= 20: # break z=0 for z in range(10): z+=1 if(z<=10): liList = browser.find_elements_by_css_selector("#content > div.leftContent > ul > li") for i in liList: price = i.find_element_by_css_selector( " div.info.clear > div.priceInfo > div.totalPrice").text print(price) # shop=i.find_element_by_css_selector("div > div.p-shop > span > a").text # print(shop) # jianjie=i.find_element_by_css_selector(" div > div.p-name.p-name-type-2 > a > em").text # print(jianjie) with open("lianjia2.csv", "a+", encoding="utf-8") as file: data = [price] csv.writer(file).writerow(data) browser.find_element_by_css_selector( "#content > div.leftContent > div.contentBottom.clear > div.page-box.fr > div > a:nth-child(6)").click() print("第%s页数据下载完毕"%x) x+=1 break time.sleep(5)
应该是翻页的定位不准,可以打开浏览器的开发者工具,可以复制xpath,用xpath定位试试,如果翻页只是在上一页的url增加了参数,可以自己修改url,用browser.get(url)访问第二页
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632