import re
import requests
r = requests.get('url')
data = r.text
# 利用正則查找所有連接
link_list =re.findall(r"(?<=href=https://bbs.csdn.net/").+?(?=\")|(?<=href=https://bbs.csdn.net/').+?(?=\')" ,data)
for url in link_list:
print(url)
我用正則運算式找到一個頁面下的所有鏈接并保存為lists.TXT或者CSV檔案中,請問如何再去找這些鏈接里面的特定內容?如下的程式,好像不能運行,請大佬幫忙看看。
import requests
import re
f = open('lists.txt','r')
urlList = f.readlines()
for url in urlList:
r = requests.get('url')
data = r.text
email = re.findall(r'[0-9a-zA-Z.]+@[0-9a-zA-Z.]+?com',data)
print(email)
以上程式上半部分可以單獨運行,可以列印出來讀取的url串列,后半部分如果給定一個url鏈接,也能找到該鏈接中的email地址,但是這兩部分合起來就不行了,不知道是為啥?
uj5u.com熱心網友回復:
給段資料看看uj5u.com熱心網友回復:
建議你不要直接用正則去做,下面給你一個例子。另外這個庫使用正則實作的,你可以去github看看他的原始碼。
from simplified_scrapy import Spider, SimplifiedDoc, SimplifiedMain, utils
class MySpider(Spider):
name = 'test_spider'
start_urls = ['你的入口鏈接地址']
refresh_urls = True
def extract(self, url, html, models, modelNames):
doc = SimplifiedDoc(html)
lstA = None
if url.url in self.start_urls:
# 這里從入口鏈接對應的頁面中取出鏈接
lstA = doc.selects('a')
else:
# 這里抽取你想要的資料
email = doc.getElement('a',attr='class',value='https://bbs.csdn.net/topics/email')
print (email)
return {"Urls": lstA, "Data": None}
SimplifiedMain.startThread(MySpider()) # Start download
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/23129.html
上一篇:關于R語言的一些問題
