Python 如何防止重复链接被解析?

Python 如何防止重复链接被解析?,python,python-3.x,web-scraping,css-selectors,web-crawler,Python,Python 3.x,Web Scraping,Css Selectors,Web Crawler,我已经用python编写了一些脚本,以获取当前运行良好的网页中的下一页链接。这个刮刀唯一的问题是它不能摆脱重复链接。希望有人能帮我做到这一点。我试过: import requests from lxml import html page_link = "https://yts.ag/browse-movies" def nextpage_links(main_link): response = requests.get(main_link).text tree = html.

我已经用python编写了一些脚本,以获取当前运行良好的网页中的下一页链接。这个刮刀唯一的问题是它不能摆脱重复链接。希望有人能帮我做到这一点。我试过:

import requests
from lxml import html

page_link = "https://yts.ag/browse-movies"

def nextpage_links(main_link):
    response = requests.get(main_link).text
    tree = html.fromstring(response)
    for item in tree.cssselect('ul.tsc_pagination a'):
        if "page" in item.attrib["href"]:
            print(item.attrib["href"])

nextpage_links(page_link)
这是我得到的部分图像:


您可以将set用于以下目的:

import requests
from lxml import html

page_link = "https://yts.ag/browse-movies"

def nextpage_links(main_link):
    links = set()
    response = requests.get(main_link).text
    tree = html.fromstring(response)
    for item in tree.cssselect('ul.tsc_pagination a'):
        if "page" in item.attrib["href"]:
            links.add(item.attrib["href"])

    return links

nextpage_links(page_link)

您还可以使用
scrapy
,默认情况下会限制重复

制作一个集合,添加所有已处理的链接,并在处理之前检查链接是否已经存在。感谢Sumit Gupta的回答。它起作用了。您应该从脚本中取出print语句。顺便说一句,如果项目管道处理正确,scrapy将处理重复项。谢谢,删除了
打印
语句:)