我正在尝试进行一些抓取,但每 4 个请求就会被阻止。我试图更改代理,但错误是一样的。我应该怎么做才能正确更改它?
这是我尝试的一些代码。首先,我从一个免费的网络获取代理。然后我使用新代理执行请求,但它不起作用,因为我被阻止了。
from fake_useragent import UserAgent
import requests
def get_player(id,proxy):
ua=UserAgent()
headers = {'User-Agent':ua.random}
url='https://www.transfermarkt.es/jadon-sancho/profil/spieler/'+str(id)
try:
print(proxy)
r=requests.get(u,headers=headers,proxies=proxy)
execpt:
....
code to manage the data
....
Run Code Online (Sandbox Code Playgroud)
def get_proxies():
ua=UserAgent()
headers = {'User-Agent':ua.random}
url='https://free-proxy-list.net/'
r=requests.get(url,headers=headers)
page = BeautifulSoup(r.text, 'html.parser')
proxies=[]
for proxy in page.find_all('tr'):
i=ip=port=0
for data in proxy.find_all('td'):
if i==0:
ip=data.get_text()
if i==1:
port=data.get_text()
i+=1
if ip!=0 and port!=0:
proxies+=[{'http':'http://'+ip+':'+port}]
return proxies
Run Code Online (Sandbox Code Playgroud)
proxies=get_proxies()
for i in range(1,100):
player=get_player(i,proxies[i//4])
....
code to manage the data
....
Run Code Online (Sandbox Code Playgroud)
我知道代理抓取很好,因为当我打印时,我会看到类似的内容: …
我签订了一份智能合约来投票,但我的一个功能(“结果”)遇到了麻烦。这是智能合约:
pragma solidity ^0.5.7;
contract Voting{
struct Option{
string name;
uint256 votes;
}
Option[] private options;
address[] private alreadyVote;
address private owner = msg.sender;
constructor() public {}
function addOption(string memory _name) public{
require(msg.sender==owner,"Permiso denegado");
options.push(Option(_name,0));
}
function vote(string memory _name) public{
require(find(msg.sender,alreadyVote)==-1,"Ya ha ejercido su derecho a voto");
int candidateIndex = findOption(_name);
require(candidateIndex!=-1,"No se ha encontrado el candidato deseado");
options[uint(candidateIndex)].votes++;
alreadyVote.push(msg.sender);
}
function findOption(string memory _name) private view returns (int){
int result = -1;
for(uint i = 0;i<options.length;i++){
if(compareStrings(options[i].name,_name))
result …Run Code Online (Sandbox Code Playgroud) 我设计了一个基于BERT的模型来解决NER任务。我正在使用带有预训练模型的transformers库。"dccuchile/bert-base-spanish-wwm-cased"当我的模型检测到一个实体但令牌是 时,问题就出现了'[UNK]'。我怎么知道该令牌后面的字符串是哪个?
我知道未知标记无法恢复为原始标记,但我想至少在将输入传递到模型之前捕获该值。
代码非常简单:
sentenceIds = tokenizer.encode(sentence,add_special_tokens = True)
inputs = pad_sequences([sentenceIds], maxlen=256, dtype="long",
value=0, truncating="post", padding="post")
att_mask = torch.tensor([[int(token_id > 0) for token_id in inputs[0]]]).to(device)
inputs = torch.tensor(inputs).to(device)
with torch.no_grad():
outputs = model(inputs,
token_type_ids=None,
attention_mask=att_mask)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这非常简单,只需标记化、填充或截断、创建注意力掩码并调用模型即可。
我尝试过使用regex,试图找到它周围的两个标记以及类似的东西,但我无法正确解决它。
python-3.x pytorch bert-language-model huggingface-transformers
python ×2
http-proxy ×1
proxy ×1
python-3.x ×1
pytorch ×1
solidity ×1
web-scraping ×1
web3py ×1