Python 清除重复链接时遇到的问题
尝试了许多不同的链接,但每次我都得到相同的结果,那就是:第一个链接总是最后一个Python 清除重复链接时遇到的问题,python,web-scraping,duplicates,web-crawler,Python,Web Scraping,Duplicates,Web Crawler,尝试了许多不同的链接,但每次我都得到相同的结果,那就是:第一个链接总是最后一个 import requests from lxml import html Unique=[] url="https://www.yellowpages.com/search?search_terms=coffee&geo_location_terms=Los+Angeles%2C+CA" def DupRemoval(Address): MainLink="https://www.yellowpag
import requests
from lxml import html
Unique=[]
url="https://www.yellowpages.com/search?search_terms=coffee&geo_location_terms=Los+Angeles%2C+CA"
def DupRemoval(Address):
MainLink="https://www.yellowpages.com"
response = requests.get(Address)
Unique.append(Address)
tree=html.fromstring(response.text)
Pagination_link=tree.xpath("//div[@class='pagination']//a/@href")
for Nextpage in Pagination_link:
Blink=MainLink+Nextpage
if Blink not in Unique:
print(Blink)
DupRemoval(url)
制作的链接:
重复链接是“下一个”链接按钮,它是分页块中的最后一个按钮。此外,如果您继续前进到下一页,您还将在那里获得“Previous”链接
过滤掉它的一种快速方法是获取所有A
元素,而不使用class
属性:
//div[@class='pagination']//a[not(@class)]/@href
您是否考虑过使用集合而不是允许重复的列表?是的,cricket_007爵士,一开始就尝试过,但没有成功。那么URL字符串中的某些内容必须不同谢谢alecxe爵士,一如既往地为您提供有效的解决方案。您是编码方面的向导。顺便说一句,你认为我上面粘贴的代码除了xpath之外还可以吗?再次感谢。@SMth80谢谢!有一些事情我会改进的-考虑把它发布到一个伟大的方式获得反馈的工作代码。有一件事要知道,先生,关于XPath表达式。前几天你教我当类元素之间包含空格时如何编写xpath。这一次我试着这样做,但不幸的是它抛出了错误。我不明白我在这里是否犯了什么错误。如果你看看这个,我会很高兴的。再次谢谢你,阿列克西先生。//div[@class='pagination']//a[包含(concat(“”,@class、“)、“下一个”)]/@href“@SMth80当然,您的表达式实际上看起来不错-它与“下一个”链接的
href
值匹配。请注意,当我复制粘贴它时,那里有一些未打印的符号-请尝试使用此符号://div[@class='pagination']//a[contains(concat('',@class',),'next')]/@href
。谢谢。@SMth80这正是问题所在-你从视觉上看不出区别,但是a
内部@class
和r
内部@href
之后都有未打印的字符。当我将表达式粘贴到$x()
函数中测试XPath时,我在chrome控制台中看到了这一点。希望有帮助。