有用的精简版_宁某爱吃柠檬的博客-爱代码爱编程
import requests
import re
from bs4 import BeautifulSoup
count=0
fp=open(r"c:/111.txt",'w',encoding='utf-8')
fp.close()
for i in range(1,6):
u="http://search.dangdang.com/?key=python&act=input&city=132&page_index="+str(i)
r=requests.get(url=u)
soup=BeautifulSoup(r.text,"html.parser")
k=soup.find_all('li',attrs={"class":re.compile(r'line\d+')})
for n in k:
book_name=n.find('a',attrs={"name":"itemlist-picture"}).attrs["title"] if n.find('a',attrs={"name":"itemlist-picture"}) else ''
author=n.find('a',attrs={"name":"itemlist-author"}).attrs["title"] if n.find('a',attrs={"name":"itemlist-author"}) else ''
nowprice=n.find('span',attrs={"class":"search_now_price"}).text if n.find('span',attrs={"class":"search_now_price"}) else ''
price=n.find('span',attrs={"class":"search_pre_price"}).text if n.find('span',attrs={"class":"search_pre_price"}) else ''
detail=n.find('p',attrs={"class":"detail"}).text if n.find('p',attrs={"class":"detail"}) else ''
url=n.find('a',attrs={"name":"itemlist-title"}).attrs["href"] if n.find('a',attrs={"name":"itemlist-title"}) else ''
print('书名:'+book_name)
print('作者:'+author)
print('现价:'+nowprice+'元')
print('原价:'+price+'元')
print('书籍介绍:'+detail)
print('链接:'+url+'\n')
count=count+1
with open(r"c:/111.txt",'a+',encoding='utf-8') as fp:
fp.write('书名:'+book_name+'\n')
fp.write('作者:'+author+'\n')
fp.write('现价:'+nowprice+'\n')
fp.write('原价:'+price+'\n')
fp.write('书籍介绍:'+detail+'\n')
fp.write('链接:'+url+'\n'+'\n')
print("总计:",count,"本")
import socket
send_sk=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while True:
s=input("请输入一段字符串:")
send_sk.sendto(s.encode(),("192.168.175.92",50008))
data,addr=send_sk.recvfrom(1024)
recv_s=data.decode()
print("收到来自%s(端口为%d)的消息%s"%(addr[0],addr[1],recv_s))
if s.lower()=="bye":
break
data,addr=send_sk.recvfrom(1024)
recv_s=data.decode()
print("收到来自%s(端口为%d)的消息:%s"%(addr[0],addr[1],recv_s))
send_sk.close()
接收端
import socket
import string
def kaisa(recv_s):
old=string.ascii_lowercase+string.ascii_uppercase+string.digits
lower=string.ascii_lowercase[2:]+string.ascii_lowercase[:2]
upper=string.ascii_uppercase[2:]+string.ascii_uppercase[:2]
digits=string.digits[2:]+string.digits[:2]
new=lower+upper+digits
kaisa_table=''.maketrans(old,new)
recv_s=recv_s.translate(kaisa_table)
return recv_s
receiver_sk=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
receiver_sk.bind(("",50008))
while True:
data,addr=receiver_sk.recvfrom(1024)
receiver_sk.sendto("消息已送达".encode(),addr)
recv_s=data.decode()
if recv_s.lower()=="bye":
break
print("收到来自%s(端口号为%d)的消息:%s"%(addr[0],addr[1],recv_s))
recv_s=kaisa(recv_s)
receiver_sk.sendto(recv_s.encode(),addr)
receiver_sk.close()
def prime(prime_n,prime_x=10):
count=0
for i in range(2,prime_n+1):
for j in range(2,i):
if i%j==0:
break
else:
count=count+1
if count%prime_x==0:
print(i)
else:
print(i,end=" ")
print("\n")
while True:
n=int(input("请输入一个正整数n:"))
if n>0:
break
x=int(input("请输入一个整数x:"))
if x>0:
prime(n,x)
else:
prime(n)
def func(old):
alist=[]
for i in old:
j=ord(i)*13%128
if j<=32 or j%2==0:
alist.append(i)
else :
alist.append(chr(j))
return ''.join(alist)
old=input("请输入一行字符串:")
new=func(old)
print("加密前的字符串:",old)
print("加密后的字符串:",new)
with open(r"d:\output2","w") as fp:
print("加密前的字符串:",old,file=fp)
print("加密后的字符串:",new,file=fp)