Python中文
首页
教程
问答
标签
搜索
登录
注册
Selenium/Beautiful Soup scraper在循环一页后失败(Javascript)
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图从《季节性食品指南》中搜集有关食品季节性的数据,但遇到了一个障碍。该网站的URL结构相当简单:</p> <p><a href="https://www.seasonalfoodguide.org/produce_name/state_name" rel="nofollow noreferrer">https://www.seasonalfoodguide.org/produce_name/state_name</a></p> <p>我已经能够使用<code>Selenium</code>和<code>Beautiful Soup</code>成功地从一个页面中获取季节性信息,但是在随后的循环中,我要查找的文本部分实际上没有加载,所以我得到了<code>AttributeError: 'NoneType' object has no attribute 'text'</code>。我知道这是因为<code>months_list_raw</code>返回空的,因为页面的<code>'wheel-months-list'</code>部分没有加载到第二个循环中。代码如下。有什么想法吗?你知道吗</p> <pre><code>for ingredient in produce_list: for state in state_list: # grab page content search_url = 'https://www.seasonalfoodguide.org/{}/{}'.format(ingredient,state) driver.get(search_url) page_soup = soup(driver.page_source, 'lxml') # grab list of months months_list_raw = page_soup.find('p',{'id':'wheel-months-list'}) months_list = months_list_raw.text </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>该页在客户端呈现,这意味着当您打开该页时,会向后端服务器发出另一个请求,以根据您选择的筛选器获取数据。所以问题是,当您打开页面并阅读HTML时,内容还没有完全加载。你可以做的最简单的事情就是在用Selenium打开页面后睡眠一段时间,等待页面完全加载。我通过在<code>driver.get(search_url)</code>之后插入<code>time.sleep(3)</code>来测试您的代码,它运行得很好。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Python中两个字典的交集
2 回答
python中两个字符串上的异或操作数?
3 回答
Python中两个字符串中的类似句子
5 回答
Python中两个字符串之间的Hamming距离
10 回答
python中两个字符串之间的匹配模式
1 回答
python中两个字符串之间的按位或
10 回答
python中两个字符串之间的数据(字节)切片
5 回答
python中两个字符串之间的模式
4 回答
python中两个字符串作为子字符串的区别
1 回答
Python中两个字符串元组的比较
10 回答
Python中两个字符串列表中的公共字符串
8 回答
python中两个字符串的Anagram测试
8 回答
Python中两个字符串的正则匹配
6 回答
python中两个字符串的笛卡尔乘积
4 回答
Python中两个字符串相似性的比较
6 回答
python中两个字符串语义相似度的求法
5 回答
Python中两个字符置换成固定长度的字符串,每个字符的数目相等
3 回答
Python中两个对数方程之间的插值和平滑数据
9 回答
Python中两个对象之间的And/Or运算符
4 回答
python中两个嵌套字典中相似键的和值
10 回答