我是python和网络抓取的新手。
我正试图从这个链接中提取有关临床诊断测试的测试组件的信息。 https://labtestsonline.org/tests-index
测试索引包含各种临床测试的测试组件名称列表。单击其中每个名称将转到另一个页面,其中包含有关各个测试组件的详细信息。从这个页面我想提取一些有共同问题的部分。
最后将一个包含测试组件名称的数据框放在一列中,将每个问题放在常见问题中作为其余列(如下所示)。
Names how_its_used when_it_is_ordered what_does_test_result_mean
到目前为止,我只能设法获得测试组件的名称。
import requests
from bs4 import BeautifulSoup
url = 'https://labtestsonline.org/tests-index'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'lxml' )
print(soup.prettify())
l = [] #get the names of the test components from the index
for i in soup.select("a[hreflang*=en]"):
l.append(i.text)
import pandas as pd
names = pd.DataFrame({'col':l}) # convert the above list to a dataframe
答案 0 :(得分:1)
我建议你看看开源网络抓取库Scrapy。它可以帮助您解决在抓取网站时可能遇到的许多问题:
这很容易上手,有很多资源可以使用Scrapy库构建简单到高级的Web抓取工具。