# 返送请求 def mainPage(self): time.sleep(5) iframe=self.driver.find_element(By.ID, 'g_iframe') self.driver.switch_to.frame(iframe) # 直接拉到底 self.driver.execute_script('window.scrollTo(0,document.body.scrollHeight)') # 得到的是内存地址,但可以使用xpath索引,要看内容的话使用etree.tostring(html).decode('utf-8') html = etree.HTML(self.driver.page_source) # result = etree.tostring(html).decode('utf-8') urls = html.xpath('//div/span[@class="txt"]/a/@href') # print(urls) cnt = 1 for url in urls: time.sleep(10) self.driver.get(f"https://music.163.com/#{url}") iframe = self.driver.find_element(By.ID, 'g_iframe') self.driver.switch_to.frame(iframe) self.song_comments() # print(f'//div/span/a[@href={url}]') # self.driver.find_element(By.XPATH, f'//div/span/a[@href="{url}"]').click() print(f"第{cnt}采集完毕!!!") cnt += 1 self.fo.close()
时间: 2024-03-18 12:43:16 浏览: 220
这段代码是一个Python脚本中的一个方法,主要作用是在网易云音乐中爬取歌曲评论数据。主要思路如下:
1. 首先等待5秒钟,等待页面加载完成。
2. 定位到页面中的一个iframe,然后切换到该iframe中。
3. 使用Javascript语句将页面滚动到底部,以便加载更多内容。
4. 将页面源代码转换成HTML对象,使用XPath表达式定位到所有的歌曲链接地址。
5. 遍历所有的链接地址,进入每个歌曲的评论页面。
6. 定位到评论页面中的另一个iframe,然后切换到该iframe中。
7. 调用`song_comments()`方法,该方法用于爬取歌曲的评论数据。
8. 最后输出采集完毕的提示信息,并关闭文件。
需要注意的是,该方法中使用了较多的等待时间,以确保页面加载完成。此外,该方法需要使用`etree`模块解析HTML源代码,并使用`xpath`表达式定位元素。
相关问题
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Gname =尿不湿' at line 1 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354) at Java康养文旅综合项目.dao.GoodsDao.update2(GoodsDao.java:279) at Java康养文旅综合项目.view.MainPage.Login(MainPage.java:349) at Java康养文旅综合项目.view.MainPage.mainMenu02(MainPage.java:296) at Java康养文旅综合项目.view.MainPage.mainMenu(MainPage.java:48) at Java康养文旅综合项目.view.MainPage.main(MainPage.java:20) java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`kywl`.`sold_detail_list`, CONSTRAINT `sold_detail_list_ibfk_1` FOREIGN KEY (`SOLD_ID`) REFERENCES `sold_out_list` (`SOLD_ID`)) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009) at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:994) at Java康养文旅综合项目.dao.GoodsDao.addDetail(GoodsDao.java:341) at Java康养文旅综合项目.view.MainPage.Login(MainPage.java:356) at Java康养文旅综合项目.view.MainPage.mainMenu02(MainPage.java:296) at Java康养文旅综合项目.view.MainPage.mainMenu(MainPage.java:48) at Java康养文旅综合项目.view.MainPage.main(MainPage.java:20) 是否继续y/n
这个错误信息表明您在执行 SQL 语句时语法出现了错误。您需要检查 SQL 语句的语法是否正确,特别是在 "Gname =尿不湿" 这个部分是否正确。此外,您在添加数据时,可能会遇到外键约束错误,这可能是因为您在添加数据时,引用了另一个表中不存在的外键值。您需要检查外键约束约束的表和列是否正确,并确保引用的外键值在关联表中存在。最后,您可以选择继续尝试执行操作,或者停止操作并进行修复。
如何修改maui里这些button控件的颜色<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="CYT.MainPage" Title=""> <ScrollView> <Grid> <Image Source="paper.png" Aspect="AspectFill"/> <VerticalStackLayout Spacing="25" Padding="30,0" VerticalOptions="Center"> <Button x:Name="BtnPage2" Text="视频" Clicked="BtnPage2_Clicked" HorizontalOptions="Center" /> <Button x:Name="BtnPage1" Text="地图" Clicked="BtnPage1_Clicked" HorizontalOptions="Center" /> <Button x:Name="BtnPage3" Text="AGV" Clicked="BtnPage3_Clicked" HorizontalOptions="Center" /> </VerticalStackLayout> </Grid> </ScrollView> </ContentPage>
你可以使用 Button 的 BackgroundColor 属性来修改按钮的背景颜色,例如:
```xml
<Button x:Name="BtnPage1"
Text="地图"
Clicked="BtnPage1_Clicked"
HorizontalOptions="Center"
BackgroundColor="Yellow" />
```
你还可以使用 TextColor 属性来修改按钮上文本的颜色,例如:
```xml
<Button x:Name="BtnPage1"
Text="地图"
Clicked="BtnPage1_Clicked"
HorizontalOptions="Center"
BackgroundColor="Yellow"
TextColor="Black" />
```
如果你想要自定义更多的样式,可以使用 Style 属性来引用一个定义好的样式。例如:
```xml
<ContentPage.Resources>
<Style x:Key="CustomButtonStyle" TargetType="Button">
<Setter Property="BackgroundColor" Value="Blue" />
<Setter Property="TextColor" Value="White" />
<Setter Property="FontSize" Value="18" />
<Setter Property="FontAttributes" Value="Bold" />
</Style>
</ContentPage.Resources>
<Button x:Name="BtnPage1"
Text="地图"
Clicked="BtnPage1_Clicked"
HorizontalOptions="Center"
Style="{StaticResource CustomButtonStyle}" />
```
在这个示例中,我们定义了一个名为 CustomButtonStyle 的样式,并将其应用到地图按钮上。这个样式定义了按钮的背景颜色、文本颜色、字体大小和字体加粗等属性。
阅读全文