Python 3.x Python:Webcraping从同一页面连接多个链接

Python 3.x Python:Webcraping从同一页面连接多个链接,python-3.x,web-scraping,Python 3.x,Web Scraping,我希望从网页中的所有“反应”中提取数据 执行代码时,应该从字段名称、公式、反应、路径中获取数据。接下来,它应该打开所有3个反应,并收集字段名称、定义、反应类的数据 我尝试使用Beautiful soup,但没有了解如何提取数据,因为HTML中的字段没有特定的类。我假设您已经检查了网页上的元素,并注意到反应表行具有类21。假设每个页面的结构都是这样的,并且您使用BS3或BS4,那么您应该能够执行以下操作 // get all elements with class td21, take the f

我希望从网页中的所有“反应”中提取数据

执行代码时,应该从字段名称、公式、反应、路径中获取数据。接下来,它应该打开所有3个反应,并收集字段名称、定义、反应类的数据


我尝试使用Beautiful soup,但没有了解如何提取数据,因为HTML中的字段没有特定的类。

我假设您已经检查了网页上的元素,并注意到反应表行具有类21。假设每个页面的结构都是这样的,并且您使用BS3或BS4,那么您应该能够执行以下操作

// get all elements with class td21, take the first, take every link in it
links = soup.find_all("td", class="td21"})[0].find_all("a")
获取链接元素(警告,BS3+BS4之间的语法不同!)。查看参考资料以了解更多信息

使用您获得的链接,您可以通过提取每个链接的href属性来启动新的http请求,并使用BS再次开始解析结果


参考资料:


欢迎使用堆栈溢出!请更新您的问题,以显示您已在中尝试了什么,并添加示例输入和预期输出。有关更多信息,请参见,并采用:)假设是错误的。其他网页具有类td20。是否可以基于该值提取类名。例如,网页中的“反应”类,即th21,似乎使其更为复杂。在这种情况下,我会假设“Reactions”总是在td15和td25之间,并且.strip()检查这些元素的内容(.text),如果它们与“Reaction”匹配(至少没有这个单词或标识行的唯一单词列表),则使用.find_next_sibling()或.find_next()方法(或属性)获取下一个单词,假设链接总是在反应标题旁边。