有玩python爬虫遇到的问题的吗.问个问题

2018年值得收藏python爬虫面试宝典(常见问题)
是否了解线程的同步和异步?
线程同步:多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率低
线程异步:在访问资源时在空闲等待时同时访问其他资源,实现多线程机制
是否了解网络的同步和异步?
同步:提交请求-&等待服务器处理-&处理完毕返回 这个期间客户端浏览器不能干任何事
异步: 请求通过事件触发-&服务器处理(这是浏览器仍然可以作其他事情)-&处理完毕
链表和顺序表储存时各自有什么优点?
1.顺序表存储
原理:顺序表存储是将数据元素放到一块连续的内存存储空间,存取效率高,速度快。但是不可以动态增加长度。接下来分享一个python教程,有什么不懂的可以加我视频中的联系方式和我交流,加上后领取价值12800元的python学习视频教程。
优点:存取速度高效,通过下标来直接存储
缺点:1.插入和删除比较慢,2.不可以增长长度
比如:插入或者删除一个元素时,整个表需要遍历移动元素来重新排一次顺序
2.链表存储
原理:链表存储是在程序运行过程中动态的分配空间,只要存储器还有空间,就不会发生存储溢出问题
优点:插入和删除速度快,保留原有的物理顺序,比如:插入或者删除一个元素时,只需要改变指针指向即可
缺点:查找速度慢,因为查找时,需要循环链表访问
使用redis搭建分布式系统时如何处理网络延迟和网络异常?
由于网络异常的存在,分布式系统中请求结果存在“三态”的概念,即三种状态:“成功”、“失败”、“超时(未知)”
当出现“超时”时可以通过发起读取数据的操作以验证 RPC 是否成功(例如银行系统的做法)
另一种简单的做法是,设计分布式协议时将执行步骤设计为可重试的,即具有所谓的“幂等性”
数据仓库是什么?
数据仓库是一个面向主题的、集成的、稳定的、反映历史变化的、随着时间的流逝发生变化的数据集合。它主要支持管理人员的决策分析。
数据仓库收集了企业相关内部和外部各个业务系统数据源、归档文件等一系列历史数据,最后转化成企业需要的战略决策信息。
面向主题:根据业务的不同而进行的内容划分;
集成特性:因为不同的业务源数据具有不同的数据特点,当业务源数据进入到数据仓库时,需要采用统一的编码格式进行数据加载,从而保证数据仓库中数据的唯一性;
非易失性:数据仓库通过保存数据不同历史的各种状态,并不对数据进行任何更新操作。
历史特性:数据保留时间戳字段,记录每个数据在不同时间内的各种状态。
假设有一个爬虫,从网络上获取数据的频率快,本地写入数据的频率慢,使用什么数据结构好?
在线求解(o°ω°o)
你是否了解谷歌的无头浏览器?
无头浏览器即headless browser,是一种没有界面的浏览器。既然是浏览器那么浏览器该有的东西它都应该有,只是看不到界面而已。
Python中selenium模块中的PhantomJS即为无界面浏览器(无头浏览器):是基于QtWebkit的无头浏览器,
你是否了解MySQL数据库的几种引擎?
InnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。
在以下场合下,使用InnoDB是最理想的选择:
1.更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。
2.事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。
3.自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。
4.外键约束。MySQL支持外键的存储引擎只有InnoDB。
5.支持自动增加列AUTO_INCREMENT属性。
一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是不错的选择。
使用MySQL Memory存储引擎的出发点是速度。为得到最快的响应时间,采用的逻辑存储介质是系统内存。
虽然在内存中存储表数据确实会提供很高的性能,但当mysqld守护进程崩溃时,所有的Memory数据都会丢失。
获得速度的同时也带来了一些缺陷。
一般在以下几种情况下使用Memory存储引擎:
1.目标数据较小,而且被非常频繁地访问。在内存中存放数据,所以会造成内存的使用,可以通过参数max_heap_table_size控制Memory表的大小,设置此参数,就可以限制Memory表的最大大小。
2.如果数据是临时的,而且要求必须立即可用,那么就可以存放在内存表中。
3.存储在Memory表中的数据如果突然丢失,不会对应用服务产生实质的负面影响。
redis数据库有哪几种数据结构?
5种数据结构
使用string时,redis**大多数情况下**并不会理解或者解析其含义,无论使用json、xml还是纯文本在redis看来都是一样的,只是一个字符串,只能进行strlen、append等对字符串通用的操作,无法针对其内容进一步操作。其基本操作命令有set、get、strlen、getrange、append:
使用hash时,在我看来,就是value本身就是一组key-value对,不过redis将这里的key称为field(但是hkeys命令为什么不叫hfields命令呢哈哈),也就是value是一组field-value对。其基本操作命令有hset、hget、hmset、hmget、hgetall、hkeys和hdel:
使用list时,value就是一个string数组,操作这组string时,可以像对待栈一样使用pop和push操作,但是这个栈两端都能进行操作;也可以像对待数组一样使用一个index参数来操作。list的操作命令略杂,主要分为两类:L开头的和R开头的,L代表LEFT或者LIST,进行一些从列表左端进行的操作,或者一些与端无关的操作;R代表RIGHT,进行一些从列表右端进行的操作。接下来分享一个python教程,有什么不懂的可以加我视频中的联系方式和我交流,加上后领取价值12800元的python学习视频教程。
set用于存储一组不重复的值,也可以进行一些集合的操作,就像数学上的集合,它是无序的。基本操作有sadd和sismember:
sorted set
sorted set类似set,但是sorted set里每个元素都有一个score,这个score可用于排序和排名。基本操作有zadd、zcount、zrank:
以上所述是小编给大家介绍的python爬虫面试经典(常见问题),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
自媒体vip学习交流群,能赚钱才是硬道理,每天实战干货分享。欢迎各大自媒体加入。
本群每天直播分享web前端开发,web前端设计,欢迎前端爱好者加入交流学习。
今日搜狐热点22:25 提问
新人入坑爬虫 遇到简单问题 请大佬帮忙
照着书上打的 自己换了ip 为啥一运行就空白呢 愁死我了
import requests
from bs4 import BeautifulSoup
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0. Safari/537.36'}
a={'http':'}
r=requests.get(')
soup = BeautifulSoup(r.text, 'html.parser')
price = soup.select('#page_list & ul & li & div.result_btm_con.lodgeunitname & span.result_price & i')
for ss in price:
按赞数排序
兄弟,你这ip代理一眼就看着有问题的,代理的格式是ip:port,就是端口,你这端口都没有,望采纳
兄dei 你的代理有问题,上面的大哥们解释很清楚了
代理端口的问题,ip:port 是格式
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐萌新关于 Python 爬虫几个方面的问题,求大神指点
· 199 天前 · 336 次点击
首先,我是在这个
网址下爬取每一个服务的公司名,然后把这些公司名拿去在
上爬取搜索到的信息。
但是现在有个问题是,企查查这个网站你爬多了就会让你验证,即使你登录了之后爬的多了也会让你验证,我想知道有什么方法去解决,比如代理 ip 怎么实现设置多个代理 ip 去爬,因为我现在这么爬效率实在太慢了。下面是我的代码,很繁琐,还想让大神帮我精简下:
import selenium.webdriver as webdriver
driver=webdriver.Chrome()
import xlrd
data = xlrd.open_workbook("C://Python27//2.xlsx")
table = data.sheets()[0]
nrows = table.nrows
ncols = table.ncols
rowValues=[]
for i in xrange(0,nrows):
rowValues.append(table.row_values(i))
#import sys,urllib
for r in rowValues:
s = ('').join(r)
base_url = ' + s
a.append(base_url)
for r in a:
driver.get(r)
results=driver.find_elements_by_xpath("//tr[1]//td[2]/p[1][@class='m-t-xs']/a")
for result in results:
res.append(result.text)
from xlutils.copy import copy
from xlrd import open_workbook
from xlwt import easyxf
excel=r'C://Python27//2.xlsx'
rb=xlrd.open_workbook(excel)
wb=copy(rb)
sheet=wb.get_sheet(0)
for tag in res:
sheet.write(x,y,tag)
wb.save(excel)
for r in a:
driver.get(r)
results=driver.find_elements_by_xpath("//tr[1]//td[2]/p[1][@class='m-t-xs']/span[1]")
for result in results:
rex.append(result.text)
excel=r'C://Python27//2.xlsx'
rb=xlrd.open_workbook(excel)
wb=copy(rb)
sheet=wb.get_sheet(0)
for tag in rex:
sheet.write(x,y,tag)
wb.save(excel)
for r in a:
driver.get(r)
results=driver.find_elements_by_xpath("//tr[1]//td[2]/p[1][@class='m-t-xs']/span[2]")
for result in results:
rey.append(result.text)
excel=r'C://Python27//2.xlsx'
rb=xlrd.open_workbook(excel)
wb=copy(rb)
sheet=wb.get_sheet(0)
for tag in rey:
sheet.write(x,y,tag)
wb.save(excel)
for r in a:
driver.get(r)
results=driver.find_elements_by_xpath("//tr[1]//td[2]/p[2][@class='m-t-xs']")
for result in results:
rez.append(result.text)
excel=r'C://Python27//2.xlsx'
rb=xlrd.open_workbook(excel)
wb=copy(rb)
sheet=wb.get_sheet(0)
for tag in rez:
sheet.write(x,y,tag)
wb.save(excel)
for r in a:
driver.get(r)
results=driver.find_elements_by_xpath("//tr[1]//td[2]/p[3][@class='m-t-xs']")
for result in results:
reo.append(result.text)
excel=r'C://Python27//2.xlsx'
rb=xlrd.open_workbook(excel)
wb=copy(rb)
sheet=wb.get_sheet(0)
for tag in reo:
sheet.write(x,y,tag)
wb.save(excel)
文件夹下是不同的公司名。
程序就可以自动爬取的,我现在这样也可以自动爬取,但是太慢了,一次只能爬几个公司就需要验证
我是个新人,可能问问题方式有点奇葩,希望多多包涵,求帮忙
目前尚无回复
& · & 791 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 39ms · UTC 23:23 · PVG 07:23 · LAX 15:23 · JFK 18:23? Do have faith in what you're doing.我用c#,java都写过爬虫。区别不大,原理就是利用好正则表达式。只不过是平台问题。后来了解到很多爬虫都是用python写的。因为目前对python并不熟,所以也不知道这是为什么。百度了下结果:
1)抓取网页本身的接口相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我们需要模拟user agent的行为构造合适的请求,譬如模拟用户登陆、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如,
2)网页抓取后的处理抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。
其实以上功能很多语言和工具都能做,但是用python能够干得最快,最干净。Life is short, u need python.
冲最后一句&Life is short, u need python&,立马在当当上买了本python的书!以前就膜拜过python大牛,一直想学都扯于各种借口迟迟没有开始。。
py用在linux上很强大,语言挺简单的。
NO.1 快速开发(唯一能和python比开发效率的语言只有rudy)语言简洁,没那么多技巧,所以读起来很清楚容易。
NO.2跨平台(由于python的开源,他比java更能体现"一次编写到处运行"
NO.3解释性( 无须编译,直接运行/调试代码)
NO.4构架选择太多(GUI构架方面 主要的就有 wxPython, tkInter, PyGtk, PyQt 。
顺便买了本《正则表达式》的书。
下班了,,先写到这把。。
多学习。To be niubility!
阅读(...) 评论()在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
import requestsfrom bs4 import BeautifulSoup
url = ''url1 = ''url2 = ''
ans = requests.get(url)soup = BeautifulSoup(ans.content)_xsrf = soup.find('input',type= 'hidden')['value']print _xsrf
postdata = {'_xsrf':_xsrf,
'password':'',
'email':''}
headers = {
'Host':'www.zhihu.com',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/ Firefox/39.0',
'Accept':'text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8',
'Accept-Language':'zh-CN,q=0.8,en-US;q=0.5,q=0.3',
'Accept-Encoding':'gzip, deflate',
'Referer':'http://www.zhihu.com/',
'If-None-Match':"FpeHbcRb4rpt_GuDL6-34nrLgGKd.gz",
'Cache-Control':'max-age=0',
'Connection':'keep-alive'
ans1 = requests.post(url1,data = postdata,headers = headers,cookies = ans.cookies)
ans2 = requests.get(url2,cookies = ans1.cookies)print ans2.text
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
LZ你的办法太原始了,果断应该上scrapy
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
先清理浏览器cookies,然后再登陆会出现验证码,获取验证码地址,再提交就可以成功登陆了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
只要获取答案,不需要登陆的。直接urllib.urlopen 就可以搞定了。
下面有一个例子,可以试试。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 python爬虫 访问https 的文章

 

随机推荐