ebay抓取specific 考虑remove 0results

    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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值