python 网页爬虫,带登陆信息
还需解决的问题:
爬取记录较多时,会触发反爬虫机制。
用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 网页爬虫,带登陆信息相关推荐
- python网页爬虫-python网页爬虫浅析
Python网页爬虫简介: 有时候我们需要把一个网页的图片copy 下来.通常手工的方式是鼠标右键 save picture as ... python 网页爬虫可以一次性把所有图片copy 下来. ...
- python网页爬虫-Python网页爬虫
曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选 ...
- Python 网络爬虫笔记4 -- 信息标记与提取
Python 网络爬虫笔记4 – 信息标记与提取 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pytho ...
- Python 网页爬虫 文本处理 科学计算 机器学习 数据挖掘兵器谱 - 数客
曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选 ...
- Python 网页爬虫 文本处理 科学计算 机器学习 数据挖掘兵器谱
Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱 2015-04-27 程序猿 程序猿 来自:我爱自然语言处理,www.52nlp. ...
- python网页爬虫+简单的数据分析
python网页爬虫+简单的数据分析 文章目录 python网页爬虫+简单的数据分析 一.数据爬取 二.数据分析 1.我们今天爬取的目标网站是:http://pm25.in/ 2.需要爬取的目标数据是 ...
- Python网页爬虫练习:requests库Beautiful爬取bilibili网页信息
我是卢本伟! import requests from bs4 import BeautifulSoup import bs4 def get_blibli_vedio():#获取bilibili实时 ...
- Python网页爬虫--
pycharm里安装beautifulSoup以及lxml,才能使爬虫功能强大. 做网页爬虫需要,<网页解析器:从网页中提取有价值数据的工具 http://blog.csdn.net/ochan ...
- python酒店评论分析_手把手用Python网络爬虫带你爬取全国著名高校附近酒店评论...
点击蓝色"Python空间"关注我丫 加个"星标",每天一起快乐的学习 今 日 鸡 汤 我站在鼓楼下边,一切繁华与我无关. /1 前言/ 简介:本文介绍如何用p ...
- 【选课脚本】用Python网页爬虫来进行选(qiang)课 (更新至v1.0.8)
0x00 前言 每当选课的时候,都如同打仗一般 都有自己想要的课,但是名额就那么一点 于是各显神通,有人用 js,有人用 chrome 的 console 人生苦短,我用Python (Last Up ...
最新文章
- QEMU支持的网络模式
- POJ 2932 圆扫描线
- h5禁用浏览器下载视频_【必备】 一键视频下载器插件,非常好用的浏览器插件!...
- MapReduce过程详解及其性能优化
- c语言加密shell脚本,shell脚本加密
- jquery 使用textarea
- 红魔5S将配备320Hz游戏肩键:让小白瞬间成为操控高手
- tcpdf最新版 6.2版
- c语言程序设计任正云,《C语言程序设计》任正云.ppt
- C中的C文件与h文件辨析(转)
- springmvc并发调用controller方法时对局部变量的影响
- 局域网电话软件系统功能与应用
- 使用pip下载安装离线依赖包whl文件
- Wincc7.3安装说明
- 用php编写室友通讯录_使用 XML 和 PHP 创建一个更具适应性的电话簿和通讯录
- 聊天室 作业 java_java大作业设计报告-java聊天室.docx
- c++使用POP协议接收以及解析邮件
- 网页加速器1.0.5.6 免费版
- 《自己动手写CPU》学习记录(1)——第1章
- 2018.12.15【NOIP提高组】模拟B组 jzoj100047. 基因变异
热门文章
- 如何使用TensorFlow Hub和代码示例
- Mac Redis开机自启动
- 开关电源的EMC整改实例
- ppt和pptx之间的区别
- gt2e鸿蒙系统,华为Watch GT2e评测:轻松开启年轻人一手掌控的百变运动潮酷生活...
- 本地腾讯滑块识别DLL/本地通用验证码识别DLL/文字点选/图标点选/本地识别DLL
- (转载)淘宝玉伯引发Web前后端研发模式讨论
- minecraft1.16java_我的世界:1.16最神奇的种子,自然生成的石头雕像,基岩能用!...
- JS判断页面是否被iframe嵌套
- Redis INCR命令