注意点:
1. 用Fiddler抓取登陆后的headers,cookies;
2. 每抓取一次网页暂停一点时间防止反爬虫;
3. 抓取前,需要关闭Fiddler以防止端口占用.

还需解决的问题:

爬取记录较多时,会触发反爬虫机制。

用Fiddler抓取登陆后的headers,cookies

也可使用火狐F12查看

#-*- coding: utf-8 -*-
import sys
import time
import urllib
import bs4
import re
import random  import requests  def main(startUrl):print(startUrl)global csvContentheaders = {'Accept': 'text/html, application/xhtml+xml, */*',  'Accept-Encoding':'gzip, deflate',  'Accept-Language':'zh-CN','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'  }  cookies = {'_csrf':'iN90P1mtdXxv/ZWpt8W8kg==',  '_csrf_bk':'b095b5ac898229ebf3adc8f0e901523a',   'aliyungf_tc':'AQAAAAoHdhpO9Q4AHJUE2sFxGtgWCuH9',  'auth_token':'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxODU1MDEzNTUyMSIsImlhdCI6MTUxNzE5MTI3OSwiZXhwIjoxNTMyNzQzMjc5fQ.z9l-sSAyPlLFsD97Yrs7khD1dRBCyyByb-sijUgorQzgR5HdVykD1_W_gn8R2aZSUSRhR_Dq0jPNEYPJlI22ew','bannerFlag':'true','csrfToken':'9_lfoqS9eAThxvDa8XjDHA6B','Hm_lpvt_e92c8d65d92d534b0fc290df538b4758':'1517191269','Hm_lvt_e92c8d65d92d534b0fc290df538b4758':'1516864063','OA':'TkU7nzii8Vwbw4JYrV6kjTg0WS645VnS6CIervVVizo=',   'ssuid':'360989088',  'TYCID':'709b5a10019e11e89c185fb756815612',  'tyc-user-info':'%257B%2522token%2522%253A%2522eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxODU1MDEzNTUyMSIsImlhdCI6MTUxNzE5MTI3OSwiZXhwIjoxNTMyNzQzMjc5fQ.z9l-sSAyPlLFsD97Yrs7khD1dRBCyyByb-sijUgorQzgR5HdVykD1_W_gn8R2aZSUSRhR_Dq0jPNEYPJlI22ew%2522%252C%2522integrity%2522%253A%25220%2525%2522%252C%2522state%2522%253A%25220%2522%252C%2522vipManager%2522%253A%25220%2522%252C%2522vnum%2522%253A%25220%2522%252C%2522onum%2522%253A%25220%2522%252C%2522mobile%2522%253A%252218550135521%2522%257D','undefined':'709b5a10019e11e89c185fb756815612'   }  resultPage = requests.get(startUrl, headers= headers, cookies = cookies)randomTime= random.random()*10+5print('randomTime    '+str(randomTime))time.sleep(randomTime)  soup = bs4.BeautifulSoup(resultPage.text,'html.parser')industry = soup.find_all(attrs={'class': 'in-block overflow-width vertival-middle sec-c2'})[0].string;companys= soup.find_all(attrs={'class': 'search_right_item ml10'})for company in companys:tempCsvContent=''tempCsvContent+=industry+','tempCsvContent+=company.contents[0].a.string+','#         if(company.contents[0].a.string=='昆山市大千园艺场'):
#             break;for child in company.contents[1].div.children:content= str(child.get_text);if None!=re.search("法定代表人",content):try:tempCsvContent+=child.a.string+','except:tempCsvContent+=','    elif None!=re.search("注册资本",content):try:tempCsvContent+=child.span.string+','except:tempCsvContent+=','    elif None!=re.search("注册时间",content):try:tempCsvContent+=child.span.string+','except:tempCsvContent+=','    elif None!=re.search("江苏",content): try:tempCsvContent+=re.match('^.*?f20">(\d+).*$',content).group(1)+','except:tempCsvContent+=','    else:Nonetry:tempCsvContent+=company.contents[0].a.attrs['href']  +',' link = company.contents[0].a.attrs['href']linkResult = requests.get(link, headers= headers, cookies = cookies)randomTime2= random.random()*10+5print('randomTime 2    '+str(randomTime2)+'        '+link)time.sleep(randomTime2)  linkSoup = bs4.BeautifulSoup(linkResult.text,'html.parser')location = linkSoup.find_all(attrs={'colspan': '4'})[0].text.replace('附近公司','');tempCsvContent+=location+',';selfRisk = linkSoup.find(attrs={'class': 'new-err selfRisk pl5 pr5'}).string;tempCsvContent+=selfRisk+',';roundRisk = linkSoup.find(attrs={'class': 'new-err roundRisk pl5 pr5'}).string;tempCsvContent+=roundRisk+',';riskItems = linkSoup.find(attrs={'class': 'navigation new-border-top new-border-right new-c3 js-company-navigation'}).find(attrs={'class': 'over-hide'}).find_all(attrs={'class': 'float-left f14 text-center nav_item_Box'});for content in riskItems[2].contents[1]:value = str(content)try:    if('<span class="c9">' in value):tempCsvContent+=content.span.string+',';else:tempCsvContent+='0'+',';except:tempCsvContent+='0'+',';for content in riskItems[3].contents[1]:value = str(content)try:    if('<span class="c9">' in value):tempCsvContent+=content.span.string+',';else:tempCsvContent+='0'+',';except:tempCsvContent+='0'+',';for content in riskItems[4].contents[1]:value = str(content)try:    if('<span class="c9">' in value):tempCsvContent+=content.span.string+',';else:tempCsvContent+='0'+',';except:tempCsvContent+='0'+',';        for content in riskItems[5].contents[1]:value = str(content)try:    if('<span class="c9">' in value):tempCsvContent+=content.span.string+',';else:tempCsvContent+='0'+',';except:tempCsvContent+='0'+',';  tempCsvContent=tempCsvContent.rstrip(',')tempCsvContent+='\r'csvContent+=tempCsvContentexcept:print('exception')tempCsvContent=''print(csvContent)print()print()print()print()print()if __name__ == '__main__':  for i in range(3,4):name=str(i).zfill(2)file = open('D:\\result-'+name+'.csv','w')csvContent='行业分类,企业描述,法定代表人,注册资本,注册时间,分数, 细节, 注册地址, 天眼风险-自身风险, 天眼风险-周边风险, 法律诉讼, 法院公告, 失信人, 被执行人, 开庭公告, 经营异常, 行政处罚, 严重违法,股权出质,动产抵押,欠税公告,司法拍卖, 招投标,债券信息,购地信息,招聘,税务评级,抽查检查,产品信息,进出口信用,资质证书,微信公众号,商标信息,专利,软件著作权,作品著作权,网站备案\r'for j in range(1,6):#             randomTime= random.random()*10+10
#             print('randomTime  header  '+str(randomTime))
#             time.sleep(randomTime)  main('https://szh.tianyancha.com/search/oc'+str(i).zfill(2)+'/p'+str(j))file.write(csvContent)file.closecsvContent=''print(csvContent)

运行结果示例

代码链接

python 网页爬虫,带登陆信息相关推荐

  1. python网页爬虫-python网页爬虫浅析

    Python网页爬虫简介: 有时候我们需要把一个网页的图片copy 下来.通常手工的方式是鼠标右键 save picture as ... python 网页爬虫可以一次性把所有图片copy 下来. ...

  2. python网页爬虫-Python网页爬虫

    曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选 ...

  3. Python 网络爬虫笔记4 -- 信息标记与提取

    Python 网络爬虫笔记4 – 信息标记与提取 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pytho ...

  4. Python 网页爬虫 文本处理 科学计算 机器学习 数据挖掘兵器谱 - 数客

    曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选 ...

  5. Python 网页爬虫 文本处理 科学计算 机器学习 数据挖掘兵器谱

    Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱 2015-04-27 程序猿 程序猿 来自:我爱自然语言处理,www.52nlp. ...

  6. python网页爬虫+简单的数据分析

    python网页爬虫+简单的数据分析 文章目录 python网页爬虫+简单的数据分析 一.数据爬取 二.数据分析 1.我们今天爬取的目标网站是:http://pm25.in/ 2.需要爬取的目标数据是 ...

  7. Python网页爬虫练习:requests库Beautiful爬取bilibili网页信息

    我是卢本伟! import requests from bs4 import BeautifulSoup import bs4 def get_blibli_vedio():#获取bilibili实时 ...

  8. Python网页爬虫--

    pycharm里安装beautifulSoup以及lxml,才能使爬虫功能强大. 做网页爬虫需要,<网页解析器:从网页中提取有价值数据的工具 http://blog.csdn.net/ochan ...

  9. python酒店评论分析_手把手用Python网络爬虫带你爬取全国著名高校附近酒店评论...

    点击蓝色"Python空间"关注我丫 加个"星标",每天一起快乐的学习 今 日 鸡 汤 我站在鼓楼下边,一切繁华与我无关. /1 前言/ 简介:本文介绍如何用p ...

  10. 【选课脚本】用Python网页爬虫来进行选(qiang)课 (更新至v1.0.8)

    0x00 前言 每当选课的时候,都如同打仗一般 都有自己想要的课,但是名额就那么一点 于是各显神通,有人用 js,有人用 chrome 的 console 人生苦短,我用Python (Last Up ...

最新文章

  1. QEMU支持的网络模式
  2. POJ 2932 圆扫描线
  3. h5禁用浏览器下载视频_【必备】 一键视频下载器插件,非常好用的浏览器插件!...
  4. MapReduce过程详解及其性能优化
  5. c语言加密shell脚本,shell脚本加密
  6. jquery 使用textarea
  7. 红魔5S将配备320Hz游戏肩键:让小白瞬间成为操控高手
  8. tcpdf最新版 6.2版
  9. c语言程序设计任正云,《C语言程序设计》任正云.ppt
  10. C中的C文件与h文件辨析(转)
  11. springmvc并发调用controller方法时对局部变量的影响
  12. 局域网电话软件系统功能与应用
  13. 使用pip下载安装离线依赖包whl文件
  14. Wincc7.3安装说明
  15. 用php编写室友通讯录_使用 XML 和 PHP 创建一个更具适应性的电话簿和通讯录
  16. 聊天室 作业 java_java大作业设计报告-java聊天室.docx
  17. c++使用POP协议接收以及解析邮件
  18. 网页加速器1.0.5.6 免费版
  19. 《自己动手写CPU》学习记录(1)——第1章
  20. 2018.12.15【NOIP提高组】模拟B组 jzoj100047. 基因变异

热门文章

  1. 如何使用TensorFlow Hub和代码示例
  2. Mac Redis开机自启动
  3. 开关电源的EMC整改实例
  4. ppt和pptx之间的区别
  5. gt2e鸿蒙系统,华为Watch GT2e评测:轻松开启年轻人一手掌控的百变运动潮酷生活...
  6. 本地腾讯滑块识别DLL/本地通用验证码识别DLL/文字点选/图标点选/本地识别DLL
  7. (转载)淘宝玉伯引发Web前后端研发模式讨论
  8. minecraft1.16java_我的世界:1.16最神奇的种子,自然生成的石头雕像,基岩能用!...
  9. JS判断页面是否被iframe嵌套
  10. Redis INCR命令