我需要使用websraping python 2.7从web中提取表的数据 我有这个代码:
from bs4 import BeautifulSoup as soup
import json
import pandas as pd
from urllib import urlopen
import requests
import re
from IPython.display import Image
PRODUIT= []
CAS = []
Ref_Catalogue = []
Quantite = []
Prix_HT = []
client = requests.Session()
HOMEPAGE_URL = 'https://www.scbt.com/scbt/fr/browse/chemicals-Research-Reagents-by-Application-Tyrosine-Kinase-Inhibitors/_/N-118tblu'
html = client.get(HOMEPAGE_URL).content
soup = soup(html)
cont = soup.find("table", {"class":"table plp-table table-hover"})
cont2 = cont.find("tbody")
#tr = cont2.find("tr")
for contk in cont2:
tr = contk.find("tr")
print tr
#print tr
############################################
#print col
columns = {'PRODUIT': PRODUIT, 'CAS': CAS, 'Ref_Catalogue': Ref_Catalogue, 'Quantite': Quantite, 'Prix_HT': Prix_HT}
df = pd.DataFrame(columns)
df
但我得到了这个结果
-1
None
-1
None
-1
None
-1
None
-1
None
-1
None
-1
None
-1
None
-1
None
-
我需要从表中提取数据吗? 我如何提取PRODUIT':PRODUIT,' CAS':CAS,' Ref_Catalogue':Ref_Catalogue,' Quantite':Quantite,' Prix_HT&# 39;:Prix_HT thhnx for all
答案 0 :(得分:0)
你走了。运行脚本,我希望你能得到你想要的数据。
import requests
from bs4 import BeautifulSoup
res = requests.get('https://www.scbt.com/scbt/fr/browse/chemicals-Research-Reagents-by-Application-Tyrosine-Kinase-Inhibitors/_/N-118tblu')
soup = BeautifulSoup(res.text, "lxml")
for items in soup.select(".table tr"):
data = ' '.join([' '.join(item.text.split()) for item in items.select("th,td")[:-2]])
print(data.strip())
我已经编写了与python 3兼容的代码。因此,您可能需要应用一些小的更改以适应python 2.7。