Web scraping 为什么在我的excel工作表中为我的代码保存了更多的重复数据?

Web scraping 为什么在我的excel工作表中为我的代码保存了更多的重复数据?,web-scraping,Web Scraping,实际上,这段代码通常用于从网站上刮取数据,但问题是在我的excel工作表中生成并保存了更多的重复数据 def extractor(): time.sleep(10) souptree = html.fromstring(driver.page_source) tburl = souptree.xpath("//table[contains(@id, 'theDataTable')]//tbody//tr//td[4]//a//@href") for tbu in tburl: allur

实际上,这段代码通常用于从网站上刮取数据,但问题是在我的excel工作表中生成并保存了更多的重复数据

def extractor():
time.sleep(10)
souptree = html.fromstring(driver.page_source)
tburl = souptree.xpath("//table[contains(@id, 'theDataTable')]//tbody//tr//td[4]//a//@href")
for tbu in tburl:
    allurl = []
    allurl.append(urllib.parse.urljoin(siteurl, tbu))
    for tb in allurl:
        get_url = requests.get(tb)
        get_soup = html.fromstring(get_url.content)
        pattern = re.compile("^\s+|\s*,\s*|\s+$")
        name = get_soup.xpath('//td[@headers="contactName"]//text()')
        phone = get_soup.xpath('//td[@headers="contactPhone"]//text()')
        mail = get_soup.xpath('//td[@headers="contactEmail"]//a//text()')
        artitle = get_soup.xpath('//td[@headers="contactEmail"]//a//@href')
        artit = ([x for x in pattern.split(str(artitle)) if x][-1])
        title = artit[:-2]
        for (nam, pho, mai) in zip(name, phone, mail):
            fname = nam[9:]
            allmails.append(mai)
            allnames.append(fname)
            allphone.append(pho)
            alltitles.append(title)
            fullfile = pd.DataFrame({'Names': allnames, 'Mails': allmails, 'Title': alltitles, 'Phone Numbers': allphone})
            writer = ExcelWriter('G:\\Sheet_Name.xlsx')
            fullfile.to_excel(writer, 'Sheet1', index=False)
            writer.save()
            print(fname, pho, mai, title, sep='\t')


while True:
    time.sleep(10)
    extractor()
    try:
        nextbutton()
    except (WebDriverException):
        driver.refresh()
    except(NoSuchElementException):
        time.sleep(10)
        driver.quit()

我希望输出不应该被复制,但每次我运行代码时,几乎有一半或更多的数据被复制。

什么是
nextbutton()
函数?它将转到下一页我在这里写的代码只有一部分…我只想知道为什么要打印重复的值?您可以共享用于抓取数据的URL吗,这样我们就可以开始调试代码了。最好的方法是使用
BeutifulSoup
,因为在你的代码中,你使用了一些
驱动程序,这有点让人困惑。ScienceDirect.com:从这里,我必须从一个特定的关键字(如癌症、肿瘤学等医学术语)收集数据(如该杂志的名称、电子邮件和标题)具有特定的时间段(2018-2019),必须使用python库将其存储在csv或excel表格中。再次感谢您的重播,您能为我推荐一些能让我受益匪浅的网页剪贴材料吗。再次感谢你。