Web scraping 为什么在我的excel工作表中为我的代码保存了更多的重复数据?
实际上,这段代码通常用于从网站上刮取数据,但问题是在我的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
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表格中。再次感谢您的重播,您能为我推荐一些能让我受益匪浅的网页剪贴材料吗。再次感谢你。