关于python:python实现爬取中国商标网信息去天眼查爬取电话
4 年前
from db.name.header_api import Headers, HeadersCookie, sb_num, get_user_agent_pc
num_text = sb_num # 多少期数
rows = [] # 批量信息列表
sb_num_list = [] # 注册号列表换取图片
gs_name_list = [] # 去重后公司列表
gs_name_list1 = [] # 公司列表换取电话与地址
gs_name_list2 = [] # 带公司名,注册号,商标名
gs_name_list3 = []
import requests
import re
import time
from lxml import html
etree =html.etree
import pymysql
import time
import re
import json
import csv
import xlwt # 存入 xlsx 文件
import xlrd # 获取现有的行数
from xlutils.copy import copy
import os
import requests
from lxml import html # xls
def str_true(str):
a1 =re.search(‘[A-Z, a-z]’, str) # 是否含有大小写字母
if a1 :
return False # 如果有一个存在就不能用为假
else:
return True # 都没有能用为真
def write_excel_xls(path, sheet_name, value):
index = len(value) # 获取须要写入数据的行数
workbook = xlwt.Workbook() # 新建一个工作簿
sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.write(i, j, valuei) # 像表格中写入数据(对应的行和列)
workbook.save(path) # 保留工作簿
print(“xls 格局表格写入数据胜利!”) 外汇代理 https://www.kaifx.cn/ib/
def write_excel_xls_append(path, value):
index = len(value) # 获取须要写入数据的行数
workbook = xlrd.open_workbook(path) # 关上工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
rows_old = worksheet.nrows # 获取表格中已存在的数据的行数
new_workbook = copy(workbook) # 将 xlrd 对象拷贝转化为 xlwt 对象
new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
new_worksheet.write(i + rows_old, j, valuei) # 追加写入数据,留神是从 i +rows_old 行开始写入
new_workbook.save(path) # 保留工作簿
def sb_cs(pages):
sb_num_list.clear()
gs_name_list.clear()
gs_name_list1.clear()
gs_name_list2.clear()
gs_name_list3.clear()
head2 = ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 QQBrowser/4.4.119.400’
headers2 = {
‘Accept’: ‘application/json, text/javascript, / ; q=0.01′,
‘Accept-Encoding’: ‘gzip, deflate’,
‘Accept-Language’: ‘zh-CN,zh;q=0.9’,
‘Connection’: ‘keep-alive’,
‘Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’,
‘Cookie’: ‘UM_distinctid=16eac05d31a122-071a188af83977-32365f08-100200-16eac05d3232e2;tmas_cookie=51947.7681.15402.0000’,
‘Host’: ‘wsgg.sbj.cnipa.gov.cn:9080’,
‘Origin’: ‘http://wsgg.sbj.cnipa.gov.cn:9080’,
‘Referer’: ‘http://wsgg.sbj.cnipa.gov.cn:9080/tmann/annInfoView/annSearch.html?annNum=’,
‘User-Agent’: get_user_agent_pc(), # 随机获取一个
‘X-Requested-With’: ‘XMLHttpRequest’,
}
datas = {
“page”: pages,
“rows”: ‘100’,
“annNum”: num_text, # 布告期数
‘annType’: ‘TMZCSQ’,
‘tmType’: ”,
‘coowner’: ”,
‘recUserName’: ”,
‘allowUserName’: ”,
‘byAllowUserName’: ”,
‘appId’: ”,
‘appIdZhiquan’: ”,
‘bfchangedAgengedName’: ”,
‘changeLastName’: ”,
‘transferUserName’: ”,
‘acceptUserName’: ”,
‘regNum’: ”,
‘regName’: ”,
‘tmName’: ”,
‘intCls’: ”,
‘fileType’: ”,
‘totalYOrN’: ‘true’,
‘appDateBegin’: ”, # 日期开始
‘appDateEnd’: ”, # 日期完结
‘agentName’: ”, # 代理人
}
s = requests.session()
urls1 = ‘http://wsgg.sbj.cnipa.gov.cn:9080/tmann/annInfoView/annSearchDG.html’ # 信息地址
response = s.post(urls1, data=datas, headers=headers2) # post 参数
print(response)
jsons = json.loads(response.text)
info = jsons[‘rows’]
print(‘ 总条数 ’, len(info))
for i in range(len(info)):
item1 = infoi # 多少期
item2 = infoi # 颁布工夫
item3 = infoi # 类型
item4 = infoi # 注册号
item5 = infoi # 公司名
item6 = infoi # 商标
item7 = infoi
item8 = infoi # id
if item3 == ‘ 商标初步审定布告 ’ and len(item5) > 11 and str_true(item5): # 过滤
sb_num_list.append(item4)
item_list = [str(item7), item5, item4, item6]
gs_name_list1.append(item5)
gs_name_list2.append(item_list)
print(‘ 第 ’, i + 1, ‘ 条 ’, item1, item2, item3, item4, item5, item6, str(item7))
print(‘ 注册号总共 ’, len(sb_num_list))
print(‘ 公司名总共 ’, len(gs_name_list2))
for index, each in enumerate(gs_name_list1):
if each not in gs_name_list3: # 新存入的列表
gs_name_list3.append(each)
gs_name_list.append(gs_name_list2[index])
print(index + 1, each, ‘index’, ‘each’, ‘ 第 ’, str(pages), ‘ 页 ’)
book_name_xls = os.getcwd() + ‘/text’ + ‘/{}.xls’.format(num_text + ‘ 公司名 ’ + str(pages))
value_title = [[“ 图片编号 ”, “ 公司名 ”, “ 注册号 ”, “ 标名 ”], ]
if os.path.exists(book_name_xls):
write_excel_xls_append(book_name_xls, gs_name_list)
else:
write_excel_xls(book_name_xls, ‘ 公司名列表 ’, value_title)
write_excel_xls_append(book_name_xls, gs_name_list)
if name == “__main__”:
for i in range(1, 41): # 1 到 40,
pages = i
sb_cs(pages) # 一次获以所有的 list
print(‘ 第 ’, str(pages), ‘ 页 ’)