Python中的Selenium:发送密钥并选择一个选项后,什么也没有返回

时间:2019-05-15 04:30:17

标签: python selenium

我正在为此网站Link构建网络抓取工具。无需删除所有内容,我只需要其中的一些内容,这就是为什么我在“快速查询”表单中添加了一些搜索条件的原因。

该网站将所有关键内容都放在JavaScript中...不确定这是否是原因。

driver.get('http://app1.sfda.gov.cn/datasearchcnda/face3/base.jsp?tableId=25&tableName=TABLE25&title=%E4%B8%AD%E8%8D%AF&bcId=152904713761213296322795806604')

s1 = Select(driver.find_element_by_id('s31p0'))
s1.select_by_value('25,152904756797819090327732889259') #the option is 中药
print (s1.first_selected_option.text)

elem = driver.find_element_by_id('keyword')
elem.send_keys('注射' + Keys.ENTER) #the key word is 注射

soup = BeautifulSoup(driver.page_source, 'lxml')
js_links = soup.select('a[href^="javascript:"]') #find all the links
print(js_links)

通常,它应该返回包含15个标签的列表,如下所示: 6.龟鹿补肾片(86903249000087郑州福瑞堂制药有限公司国药准字Z20090420)

但是在添加所有条件之后,它仅返回“ []”。

谁能告诉我该如何解决?预先感谢!

1 个答案:

答案 0 :(得分:0)

在输入框中输入'注射并按Enter键后,您可以使用以下代码:

代码:

list_of_links = driver.find_elements_by_css_selector("div#content table:nth-of-type(2) tr a")  

这将返回所有15个链接的列表。您将获得锚标签。您可以像这样遍历此列表:

for link in list_of_links:
  print(link.text)

EDIT1:

我正在使用以下代码:

driver.get("http://app1.sfda.gov.cn/datasearchcnda/face3/base.jsp?tableId=25&tableName=TABLE25&title=%E4%B8%AD%E8%8D%AF&bcId=152904713761213296322795806604")


s1 = Select(driver.find_element_by_id('s31p0'))
s1.select_by_value('25,152904756797819090327732889259') #the option is 中药
#print (s1.first_selected_option.text)

driver.find_element_by_id('keyword').send_keys("注射") 
#driver.find_element_by_css_selector("input[value='查询'][name='Submit']").click()


print("after send keys")

list_of_links = driver.find_elements_by_css_selector("div#content table:nth-of-type(2) tr a")

print("after listing")

for link in list_of_links:
  print(link.text)

控制台输出:

DevTools listening on ws://127.0.0.1:57271/devtools/browser/600a7596-da33-4d3d-970f-329e731ebfb3
after send keys
after listing
1.龟龙中风丸 (86901343001160 沈阳红药集团股份有限公司 国药准字Z20020147)
2.龟龄集 (86902884000629 山西广誉远国药有限公司 国药准字Z14020687)
3.龟黄补酒 (86901890000654;86901890000661;86901890000678 远大医药黄石飞云制药有限公司 国药准字Z20026072)
4.龟鹿补肾胶囊 (86905098000638 广西华天宝药业有限公司 国药准字Z20123109)
5.龟鹿补肾片 (86900427000075 广东心宝药业科技有限公司 国药准字Z20080217)
6.龟鹿补肾片 (86903249000087 郑州福瑞堂制药有限公司 国药准字Z20090420)
7.龟鹿补肾口服液 (86900291000263 广东华天宝药业集团有限公司 国药准字Z44023432)
8.龟鹿补肾丸 (86900291000270 广东华天宝药业集团有限公司 国药准字Z44022778)
9.龟鹿补肾丸 (86900291000294 广东华天宝药业集团有限公司 国药准字Z44022779)
10.龟鹿补肾丸 (86900415000308 广州花城药业有限公司 国药准字Z44020148)
11.龟鹿益肾胶囊 (86905004000028 湖南康寿制药有限公司 国药准字B20020196)
12.龟鹿滋肾丸 (86900008000272 北京宝树堂科技药业有限公司 国药准字Z11020387)
13.龟鹿滋肾丸 (86905156002598 广西梧州制药(集团)股份有限公司 国药准字Z45020433)
14.龟鹿滋肾丸 (86905156002604 广西梧州制药(集团)股份有限公司 国药准字Z45020432)
15.龟鹿滋肾丸 (86900256000413 国药集团冯了性(佛山)药业有限公司 国药准字Z44023076)