马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
自学了几天爬虫写的,有很多功能有想法不会做,哈哈啊哈哈。。。。。然后我想输出后为word文档然后输出后的格式和在网页上的一样,因为我正则表达式没怎么学会,提取中间文本提取不到。
# -*- coding:utf-8 -*-
import requests
import re
from docx import Document
headers= {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/5.4.1 NetType/WIFI"
}
#'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'
#requests.get()提取网页源码,返回一个对象
duixiang = requests.get("https://mp.weixin.qq.com/s/lJPHTQADa_b9D7VAimx_3w",headers=headers)#微信公众号文章地址
#print(duixiang.request.headers)
#biaoti = re.split(r'[< h2class ="rich_media_title" id="activity-name" >(.*?)< / h2 >]',duixiang.text,1)
biaoti=re.findall(r'<meta property="og:title" content="(.*?)" />',duixiang.text)#文章标题
wenzhangfenzu=re.findall(r'[^\x00-\xff]',duixiang.text)#文章分组
chuza_biaoti=re.findall(r'<strong class="profile_nickname">(.*?)</strong>',duixiang.text)
chuza_gongneng=re.findall(r'<span class="profile_meta_value">(.*?)</span>',duixiang.text)
chuza_buzhidao1=re.findall(r'var msg_desc = "(.*?)";',duixiang.text)
yuansugeshu=len(wenzhangfenzu)
"""""
range(start,end,step)
start:指定计数起始值,可是省略,如果省略则从0开始,
end:指定计数结束值(但不包括该值,如range(5)得到0~4的值,不包括5),不能省略,
step:指定计数步长,即两个数直接的间隔;可以省略,如果省略表示步长为1,
"""""
i=0
wenzhang=""
for i in range(0,yuansugeshu,1):
wenzhang=wenzhang+str(wenzhangfenzu[i])
i=i+1
wenzhang=wenzhang.replace(chuza_biaoti[0],"")
wenzhang=wenzhang.replace("微信公众平台","")
wenzhang=wenzhang.replace("微信号","")
wenzhang=wenzhang.replace("功能介绍","")
wenzhang=wenzhang.replace(chuza_gongneng[1],"")
wenzhang=wenzhang.replace(chuza_buzhidao1[0],"")
wenzhang=wenzhang.replace(biaoti[0],"")
wenzhang=wenzhang.replace("请求录制这里要加或才加载","")
wenzhang=wenzhang.replace("阅读在看已同步到看一看写下你的想法前往“发现”“看一看”浏览“朋友在看”前往看一看看一看入口已关闭在“设置”“通用”“发现页管理”打开“看一看”入口我知道了已发送取消发送到看一看发送写下你的想法最多字,当前共字发送中相关阅读更多文章微信扫一扫关注该公众号微信扫一扫使用小程序取消允许取消允许知道了长按识别前往小程序","")
print(wenzhang)
#wenjianming=''.join(str(biaoti[0]))+".docx"
"""""
with open(r'filename.txt') as f:
data_user=pd.read_csv(f) #文件的读操作
with open('data.txt', 'w') as f:
f.write('hello world') #文件的写操作
with open('data.txt', 'w') as f:
r: 以只读方式打开文件。文件的指针将会放在文件的开头。这是**默认模式**。
rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+: 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w: 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb: 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+: 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a: 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+: 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
"""""
#with open(wenjianming, "wb") as f:
#if f.write(duixiang.content) :#文件的写操作
"""""
print("写出"+wenjianming+"成功!")
else:
print("写出"+wenjianming+"失败!")
word = Document(wenjianming)
"""""
|