Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从pastebin Python编译链接列表_Python_Html_Regex_Lxml_Partitioning - Fatal编程技术网

从pastebin Python编译链接列表

从pastebin Python编译链接列表,python,html,regex,lxml,partitioning,Python,Html,Regex,Lxml,Partitioning,目前正在尝试使用python提取pastebin的链接。到目前为止,我所拥有的: from bs4 import BeautifulSoup import re import requests from random import randint import time from lxml import etree from time import sleep import random a = requests.get('http://pastebin.com/JGM3p9c9') scra

目前正在尝试使用python提取pastebin的链接。到目前为止,我所拥有的:

from bs4 import BeautifulSoup
import re
import requests
from random import randint
import time
from lxml import etree
from time import sleep
import random

a = requests.get('http://pastebin.com/JGM3p9c9')
scrape = BeautifulSoup(a.text, 'lxml')
linkz = scrape.find_all("textarea", {"id":"paste_code"})

rawlinks = str(linkz)
partition1 = rawlinks.partition('\\r')[0]
links = partition1.partition('">')[-1]
我似乎无法让python编译所有
http://
格式的链接,但只能编译第一个。。。使用我在网上发现的正则表达式不起作用


最终目标我正在尝试将链接放入一个列表中,在该列表中我可以向我编译的列表中的所有链接发送请求。

首先,您不必提取完整的标记并将其更改为
str
。实现这一目标的更好方法是:

#                      `next` to extract content within tag v
#    instead use `find` v                                   v
>>> my_links = scrape.find("textarea", {"id":"paste_code"}).next
其中
my_links
将保存以下值:

u'http://www.walmart.com\r\nhttp://www.target.com\r\nhttp://www.lowes.com\r\nhttp://www.sears.com'
要将此字符串转换为所需的
链接列表
,您可以将
\r\n
上的字符串拆分为:

>>> my_links.split('\r\n')
[u'http://www.walmart.com', u'http://www.target.com', u'http://www.lowes.com', u'http://www.sears.com']

首先,您不必提取完整的标记并将其更改为
str
。实现这一目标的更好方法是:

#                      `next` to extract content within tag v
#    instead use `find` v                                   v
>>> my_links = scrape.find("textarea", {"id":"paste_code"}).next
其中
my_links
将保存以下值:

u'http://www.walmart.com\r\nhttp://www.target.com\r\nhttp://www.lowes.com\r\nhttp://www.sears.com'
要将此字符串转换为所需的
链接列表
,您可以将
\r\n
上的字符串拆分为:

>>> my_links.split('\r\n')
[u'http://www.walmart.com', u'http://www.target.com', u'http://www.lowes.com', u'http://www.sears.com']

您需要浏览几个HTML层,但我查看了pastebin页面,我认为这段代码会找到您想要的内容(很抱歉切换了几个模块,我只使用了这些模块)

下一次,你需要通过右键点击并选择“检查元素”来查看网站的HML,我建议你抓取一个特定的东西。您还可以执行以下操作:

print(scrape.prettify())

为了更好地了解HTML是如何嵌套的。

您需要浏览几层HTML,但我查看了pastebin页面,我认为这段代码会找到您想要的内容(很抱歉切换了几个模块,我只使用了这些模块)

下一次,你需要通过右键点击并选择“检查元素”来查看网站的HML,我建议你抓取一个特定的东西。您还可以执行以下操作:

print(scrape.prettify())

为了更好地了解HTML是如何嵌套的。

忘记使用BS解析HTML-在这种特定情况下,您可以直接获取粘贴库的内容,并将其转换为一行

import requests
links = [link.strip() for link in requests.get('http://pastebin.com/raw/JGM3p9c9').text.split('\n')]

您还可以在
\r\n

上拆分,忘记使用BS解析HTML-在这种特定情况下,您可以直接获取粘贴箱的内容,并将其转换为一行

import requests
links = [link.strip() for link in requests.get('http://pastebin.com/raw/JGM3p9c9').text.split('\n')]
您也可以在
\r\n