乐趣区

关于python:python实现爬取中国商标网信息去天眼查爬取电话

  1. python 功能强大非常少的代码轻松实现各种网站资源爬取,如电话信息,vip 素材网等

  2. 上面介绍用 python 爬取中国商标网信息去天眼查爬取法人电话与公司地址进步销售效率

  3. !/usr/bin/env python

  4. – coding: utf-8 –

  5. from db.name.header_api import Headers, HeadersCookie, sb_num, get_user_agent_pc
  6. num_text = sb_num # 多少期数
  7. rows = [] # 批量信息列表
  8. sb_num_list = [] # 注册号列表换取图片
  9. gs_name_list = [] # 去重后公司列表
  10. gs_name_list1 = [] # 公司列表换取电话与地址
  11. gs_name_list2 = [] # 带公司名,注册号,商标名
  12. gs_name_list3 = []
  13. import requests
  14. import re
  15. import time
  16. from lxml import html
  17. etree =html.etree
  18. import pymysql
  19. import time
  20. import re
  21. import json
  22. import csv
  23. import xlwt # 存入 xlsx 文件
  24. import xlrd # 获取现有的行数
  25. from xlutils.copy import copy
  26. import os
  27. import requests
  28. from lxml import html # xls
  29. def str_true(str):
  30. a1 =re.search(‘[A-Z, a-z]’, str) # 是否含有大小写字母
  31. if a1 :
  32. return False # 如果有一个存在就不能用为假
  33. else:
  34. return True # 都没有能用为真
  35. 题目写入 excel

  36. def write_excel_xls(path, sheet_name, value):
  37. index = len(value) # 获取须要写入数据的行数
  38. workbook = xlwt.Workbook() # 新建一个工作簿
  39. sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一个表格
  40. for i in range(0, index):
  41. for j in range(0, len(value[i])):
  42. sheet.write(i, j, valuei) # 像表格中写入数据(对应的行和列)
  43. workbook.save(path) # 保留工作簿
  44. print(“xls 格局表格写入数据胜利!”)
    外汇代理 https://www.kaifx.cn/ib/
  45. 追加

  46. def write_excel_xls_append(path, value):
  47. index = len(value) # 获取须要写入数据的行数
  48. workbook = xlrd.open_workbook(path) # 关上工作簿
  49. sheets = workbook.sheet_names() # 获取工作簿中的所有表格
  50. worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
  51. rows_old = worksheet.nrows # 获取表格中已存在的数据的行数
  52. new_workbook = copy(workbook) # 将 xlrd 对象拷贝转化为 xlwt 对象
  53. new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
  54. for i in range(0, index):
  55. for j in range(0, len(value[i])):
  56. new_worksheet.write(i + rows_old, j, valuei) # 追加写入数据,留神是从 i +rows_old 行开始写入
  57. new_workbook.save(path) # 保留工作簿
  58. print(“xls 格局表格【追加】写入数据胜利!”)

  59. def sb_cs(pages):
  60. sb_num_list.clear()
  61. gs_name_list.clear()
  62. gs_name_list1.clear()
  63. gs_name_list2.clear()
  64. gs_name_list3.clear()
  65. 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’
  66. headers2 = {
  67. ‘user-agent’: head2,

  68. ‘Accept’: ‘application/json, text/javascript, /; q=0.01′,
  69. ‘Accept-Encoding’: ‘gzip, deflate’,
  70. ‘Accept-Language’: ‘zh-CN,zh;q=0.9’,
  71. ‘Connection’: ‘keep-alive’,
  72. ‘Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’,
  73. ‘Cookie’: ‘UM_distinctid=16eac05d31a122-071a188af83977-32365f08-100200-16eac05d3232e2;tmas_cookie=51947.7681.15402.0000’,
  74. ‘Host’: ‘wsgg.sbj.cnipa.gov.cn:9080’,
  75. ‘Origin’: ‘http://wsgg.sbj.cnipa.gov.cn:9080’,
  76. ‘Referer’: ‘http://wsgg.sbj.cnipa.gov.cn:9080/tmann/annInfoView/annSearch.html?annNum=’,
  77. ‘User-Agent’: get_user_agent_pc(), # 随机获取一个
  78. ‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36’,

  79. ‘X-Requested-With’: ‘XMLHttpRequest’,
  80. }
  81. datas = {
  82. “page”: pages,
  83. “rows”: ‘100’,
  84. “annNum”: num_text, # 布告期数
  85. ‘annType’: ‘TMZCSQ’,
  86. ‘tmType’: ”,
  87. ‘coowner’: ”,
  88. ‘recUserName’: ”,
  89. ‘allowUserName’: ”,
  90. ‘byAllowUserName’: ”,
  91. ‘appId’: ”,
  92. ‘appIdZhiquan’: ”,
  93. ‘bfchangedAgengedName’: ”,
  94. ‘changeLastName’: ”,
  95. ‘transferUserName’: ”,
  96. ‘acceptUserName’: ”,
  97. ‘regNum’: ”,
  98. ‘regName’: ”,
  99. ‘tmName’: ”,
  100. ‘intCls’: ”,
  101. ‘fileType’: ”,
  102. ‘totalYOrN’: ‘true’,
  103. ‘appDateBegin’: ”, # 日期开始
  104. ‘appDateEnd’: ”, # 日期完结
  105. ‘agentName’: ”, # 代理人
  106. }
  107. s = requests.session()
  108. urls1 = ‘http://wsgg.sbj.cnipa.gov.cn:9080/tmann/annInfoView/annSearchDG.html’ # 信息地址
  109. response = s.post(urls1, data=datas, headers=headers2) # post 参数
  110. print(response)
  111. jsons = json.loads(response.text)
  112. info = jsons[‘rows’]
  113. print(‘ 总条数 ’, len(info))
  114. for i in range(len(info)):
  115. item1 = infoi # 多少期
  116. item2 = infoi # 颁布工夫
  117. item3 = infoi # 类型
  118. item4 = infoi # 注册号
  119. item5 = infoi # 公司名
  120. item6 = infoi # 商标
  121. item7 = infoi
  122. item8 = infoi # id
  123. print(item7, type(item7), item4, type(item4), type(str(item7)),item7)

  124. 字符串中有点,有数字,有字母的不要

  125. if item3 == ‘ 商标初步审定布告 ’ and len(item5) > 11 and str_true(item5): # 过滤
  126. sb_num_list.append(item4)
  127. item_list = [str(item7), item5, item4, item6]
  128. gs_name_list1.append(item5)
  129. gs_name_list2.append(item_list)
  130. print(‘ 第 ’, i + 1, ‘ 条 ’, item1, item2, item3, item4, item5, item6, str(item7))
  131. print(‘ 注册号总共 ’, len(sb_num_list))
  132. print(‘ 公司名总共 ’, len(gs_name_list2))
  133. for index, each in enumerate(gs_name_list1):
  134. if each not in gs_name_list3: # 新存入的列表
  135. gs_name_list3.append(each)
  136. gs_name_list.append(gs_name_list2[index])
  137. print(index + 1, each, ‘index’, ‘each’, ‘ 第 ’, str(pages), ‘ 页 ’)
  138. book_name_xls = os.getcwd() + ‘/text’ + ‘/{}.xls’.format(num_text + ‘ 公司名 ’ + str(pages))
  139. value_title = [[“ 图片编号 ”, “ 公司名 ”, “ 注册号 ”, “ 标名 ”], ]
  140. if os.path.exists(book_name_xls):
  141. write_excel_xls_append(book_name_xls, gs_name_list)
  142. else:
  143. write_excel_xls(book_name_xls, ‘ 公司名列表 ’, value_title)
  144. write_excel_xls_append(book_name_xls, gs_name_list)
  145. if name == “__main__”:
  146. 执行第 1 步,获取过滤后的公司信息

  147. for i in range(1, 41): # 1 到 40,
  148. pages = i
  149. sb_cs(pages) # 一次获以所有的 list
  150. print(‘ 第 ’, str(pages), ‘ 页 ’)
退出移动版