开始写博客

9月份就研究生开学了,过去三个月里,学了很多东西,也遇到了很多问题,在这里总结一下。

4月-5月,学习python,爬虫相关知识,跟着资料,爬了有道翻译,爬了百度百科,根据已学知识,自己试着爬了谷歌翻译和b站,我记得有道翻译是在url中去掉了translate_O里的_O就爬成功了,谷歌翻译和有道翻译不太一样,有道用的是post,而谷歌用的是get方法,所以对于get方法应当是直接把需要翻译的数据写在url里,但是谷歌翻译有一个tk=。。。。一串数字,并不太理解这串数字是什么,感觉应该和我要翻译的内容是有关系的,只有当翻译的内容和这串数字匹配时才不会报错翻译出想要的东西

在这里插入图片描述

下面是有道翻译的代码:

import urllib.request
import urllib.parse
import json


url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
content = input("请输入要翻译的内容:")
head = {}
head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36'
data = {'i': content,'from': 'AUTO','to': 'AUTO','smartresult': 'dict','client': 'fanyideskweb','salt': '15562550428509','sign': 'fa86bd58df0885ced64509d9bb4ebf48','ts': '1556255042850','bv': 'b5362300738e7f121e2c37609aaa6bb3','doctype': 'json','version': '2.1','keyfrom': 'fanyi.web','action': 'FY_BY_REALTlME'}
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url,data,headers=head)
#如果是get方法,应当为geturl = url+"?"+data,然后req = urllib.request.Request(geturl)
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
target = json.loads(html)
print('翻译结果是:'+target['translateResult'][0][0]['tgt'])

爬b站主页图片的代码

import urllib.request
import urllib.parse
from bs4 import BeautifulSoup
import os

def url_open(url):
  req = urllib.request.Request(url)
  req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36')
  response = urllib.request.urlopen(req)
  html = response.read()

  return html

def find_imgs(url):
  html = url_open(url).decode('utf-8')
  soup = BeautifulSoup(html,'html.parser')
  img_addrs = []
  a = soup.find_all('img')
  for each in a:
  if each.get('src'):
    if each.get('src')[0:2]=='ht':
      img_addrs.append(each.get('src'))
    else:
      img_addrs.append('http:'+each.get('src'))
      #print(each('src'))
  return img_addrs
  
def save_imgs(folder , img_adds):
  for each in img_adds:
  filename = each.split('/')[-1][:-14]
  print(each)
  if filename!='':
    yield urllib.request.urlretrieve(each,filename,None) #与下面方法相同
  # with open(filename,'wb') as f:
  # img = url_open(each)
  # yield f.write(img)





def main(folder='bilibili',pages=10):
  if os.path.exists(folder)!=True:
    os.mkdir(folder)
    os.chdir(folder)

  url = "https://www.bilibili.com/"
  img_adds = find_imgs(url)
  sss = save_imgs(folder,img_adds)
  while True:
    try:
      for i in range(2):
        next(sss)
    except StopIteration:
      break

  command = input("输入任意字符继续,exit退出程序:")
  if command == 'exit':
    break
  else:
    continue



if __name__ == '__main__':
main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值