【发布时间】:2021-10-28 15:54:29
【问题描述】:
大家好
我在抓取这个动态网站时遇到了一些问题 (https://kvartiry-bolgarii.ru/) 我需要获取房屋销售广告的所有链接
我使用 selenium 加载页面并获取指向广告的链接,然后我将页面向下移动以加载新广告。加载新广告后,我开始解析页面上的所有链接并将它们再次写入列表。 但是列表中的数据没有更新,脚本继续使用向下滚动之前页面上的链接。
顺便说一句,我设置了一个检查,以便执行脚本,直到网站上的最后一个公告出现在列表中,我提前发现的链接
如何解决这个问题?
def get_link_info():
try:
url = "https://kvartiry-bolgarii.ru/"
driver = webdriver.Chrome(
executable_path=r'C:\Users\kk\Desktop\scrape_house\drivers\chromedriver.exe',
options=options
)
driver.get(url)
req = requests.get(url)
req.encoding = 'utf8'
soup = BeautifulSoup(req.text, "lxml")
articles = soup.find_all("div", class_="content")
links_urls = []
for article in articles:
house_url = article.find("a").get("href")
links_urls.append(house_url)
#print(links_urls)
first_link_number = links_urls[-2].split("-")[-1]
first_link_number = first_link_number[1:]
#print(first_link_number)
last_link_number = links_urls[-1].split("-")[-1]
last_link_number = last_link_number[1:]
#print(last_link_number)
html = driver.find_element_by_tag_name('html')
html.send_keys(Keys.END)
check = "https://kvartiry-bolgarii.ru/kvartira-v-elitnom-komplekse-s-unikalynym-sadom-o21751"
for a in links_urls:
if a != check:
for article in articles:
house_url = article.find("a").get("href")
links_urls.append(house_url)
html = driver.find_element_by_tag_name('html')
html.send_keys(Keys.END)
print(links_urls[-1])
else:
print(links_urls[0], links_urls[-1])
print("all links are ready")
【问题讨论】:
-
@Дмитрий 你有一个答案。如果它有效或无效,请留下一些反馈。这就是这个网站的运作方式。你问,人们回答你,你接受/赞成答案。你留下一些cmets以防出错。
-
请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example。
标签: python selenium python-requests