def getspecific(self , ebayno):
print(ebayno)
out = open("specific.csv","a",newline="")
csv_writer = csv.writer(out)
url = 'http://www.ebay.com/itm/' + ebayno
req = urllib.request.Request(url=url, headers=self.randHeader())
try:
webpage = urllib.request.urlopen(req)
except:
csv_writer.writerow([ebayno, "removed", "removed", "removed", "removed", "removed"]) # 搜索页面对应的是removed
print("removed")
return
html = webpage.read()
soup = BeautifulSoup(html, 'html.parser')
results0 = soup.find("span", class_="pivHdr--sub-heading")
if results0 is not None:
if results0.contents[0].find("0 results.") != -1:
csv_writer.writerow([ebayno, "0", "0", "0", "0", "0"]) # 搜索页面对应的是0results
print("0 results.")
return
contentlist = soup.find_all("div", class_="section") # 定位到Item specifics
if len(contentlist) == 0 :
csv_writer.writerow([ebayno, "0", "0", "0", "0", "0"]) #搜索页面对应的是0results
return
content = contentlist[0]
# print(content.prettify()) #格式化
tds = content.find_all("td") # 找到specific表格里单元格存储的数据,并用字典存储
i = 0
alien = {}
for td in tds:
i = i + 1
for string in td.stripped_strings:
tr = str(repr(string)).replace("'", "")
if i % 2 == 1:
key = tr
else:
value = tr
if i % 2 == 0:
alien[key] = value
# 需要摘取的字段判断
if "Condition:" in alien.keys():
condi = alien["Condition:"]
else:
condi = "#"
if "Placement on Vehicle:" in alien.keys():
pov = alien["Placement on Vehicle:"]
else:
pov = "#"
if "Manufacturer Part Number:" in alien.keys():
mpn = alien["Manufacturer Part Number:"]
else:
mpn = "#"
if "Interchange Part Number:" in alien.keys():
ipn = alien["Interchange Part Number:"]
else:
ipn = "#"
if "Other Part Number:" in alien.keys():
opn = alien["Other Part Number:"]
else:
opn = "#"
# print(pov)
# print(mpn)
# print(ipn)
# print(opn)
csv_writer.writerow([ebayno , condi , pov, mpn, ipn, opn])
result = [condi , pov, mpn, ipn, opn]
return result