python爬虫抓取机票时出现的问题

我是在校学生,自学了点python,想用爬虫抓取机票价格可以更方便的了解特价票信息,所以在网上找了抓取的一些代码然后自己又改了一些,初步有自己想要的功能:挂在服务器上运行,一旦有特价票,向我的邮箱发信息。但是一直有问题,第一个是运行的时候会出下面这个错误(好像是列表越界):
Exception in thread Thread-24:
Traceback (most recent call last):
File "/usr/local/python27/lib/python2.7/threading.py", line 551, in __bootstrap_inner
self.run()
File "/usr/local/python27/lib/python2.7/threading.py", line 755, in run
self.function(*self.args, **self.kwargs)
File "SpecialFlightPrice.py", line 72, in task_query_flight
flights=getdate(city, today, enddate)
File "SpecialFlightPrice.py", line 27, in getdate
json_data = re.findall(pattern, price_html)[0]
IndexError: list index out of range

还有一个问题就是我想每天定时对机票信息文件进行清空,但是写的代码却实现不了这个功能,请大神顺便帮我改一改。
先感谢!

下面是源码(我把个人的2个邮箱改成了xxxxxxxx,如果想运行需要把xxxxxxxx改成自己的2个邮箱,还有因为是挂在服务器上运行的,所以需要输入几个参数:出发地点,日期,日期后几天的机票):

-*- coding: utf-8 -*-

import datetime
import time
import json
import urllib
import re
import sys
import threading
from email.mime.text import MIMEText
import smtplib
from time import sleep
from threading import Timer
from _ast import While

default_encoding = 'utf-8'
reload(sys)
sys.setdefaultencoding(default_encoding)

def getdate(city,startdate,enddate):
url = 'https://sjipiao.alitrip.com/search/cheapFlight.htm?startDate=%s&endDate=%s&' \
'routes=%s-&_ksTS=1469412627640_2361&callback=jsonp2362&ruleId=99&flag=1' % (startdate, enddate,city)
price_html = urllib.urlopen(url).read().strip()

pattern = r'jsonp2362\(\s+(.+?)\)'
re_rule = re.compile(pattern)

json_data = re.findall(pattern, price_html)[0]
price_json = json.loads(json_data)

flights = price_json['data']['flights']  # flights Info


return flights

def sendmail(a,b,c,d):
_user = "xxxxxxxxxxx@163.com"
_pwd = "xxxxxxxxxxx"
_to = "xxxxxxxxxxxxx@qq.com"
msg = MIMEText('%s%s%s%s'%(a,b,c,d),'plain','utf-8')
msg["Subject"] = "有特价票啦~"
msg["From"] = _user
msg["To"] = _to
try:
s = smtplib.SMTP_SSL("smtp.163.com", 465)
s.login(_user, _pwd)
s.sendmail(_user, _to, msg.as_string())
s.quit()
print "Success!"

except smtplib.SMTPException:
print "Falied"

def task_query_flight():
city=str(sys.argv[1])
year=int(sys.argv[2])
month=int(sys.argv[3])
day=int(sys.argv[4])
delay=int(sys.argv[5])

if city=='DL':
city='DLC'
elif city=='NJ':
city='NKG'
elif city=='BJ':
city='BJS'
today = datetime.date(year,month,day)
enddate = today + datetime.timedelta(delay)
print'从%s到%s的最便宜的机票价格是' % (today,enddate)

flights=getdate(city, today, enddate)


for f in flights:
    if f['discount'] <=2  :
        source = '从:%s-' % f['depName']
        dest = '到:%s\t' % f['arrName']
        price = '\t价格:%s%s(折扣:%s)\t' % ((f['price']), f['priceDesc'], f['discount'])
        depart_date = '\t日期:%s' % f['depDate']
        print source+dest+price+depart_date

        with open('store.txt','a') as f:
            f.write(' ')

        with open('store.txt','r') as f:
            for line in f.readlines():
                if '%s%s%s%s'%(source,dest,price,depart_date) in line:
                    Timer(60,task_query_flight).start()
                else:
                    sendmail(source, dest, price, depart_date)
                    with open('store.txt', 'a') as f:
                        f.write('%s%s%s%s'%(source,dest,price,depart_date))
                    Timer(60,task_query_flight).start() 

'''
两个问题:
1、列表越界  list out of range
2、定时器只会运行一次  不知什么原因。




if 没找到discount<2的,
   则  循环一直找
  并且设定时器到某一时间即清空文件内容
'''          

while True:
task_query_flight()
current_time = time.localtime(time.time())
if((current_time.tm_hour == 7) and (current_time.tm_min == 0)):
with open('store1.txt','w') as f:
f.truncate()
time.sleep(60)

if name == '__main__':
task_query_flight()

1个回答

weixin_37149578
weixin_37149578 这是因为反爬虫的原因吗?提示列表越界是这个原因吗
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python爬虫抓取亚马逊商品名,一段时间后大量返回503错误?
写了个简单的爬虫,抓取亚马逊商品的名字,一开始抓取的都还能正确返回,到几百条以后就大量返回503,偶尔成功一两条。网上说的headers和代理IP讲得比较乱,试过用headers,但是只要我一加上headers,虽然返回了200,但是bsObj.find(html)的返回还是NONE,纠结了很久不知道什么问题,有大佬解决一下吗?
关于python爬虫抓取AJAX数据
最近看腾讯漫画海贼王的时候想直接爬下来一次过看了。 然后写爬虫的时候又一次遇到了JS加载出来的图片URLs让我又一次望而却步。 一直很想解决这一个难题但是看了很多都没有找到合适的解决方法。 我有Selenium库,但是觉得腾讯的漫画页的image URL好像不需要用到。 好想只要解读好它的JS就可以了,但是我读了很久的JS也读不出它是怎么加密的。 求大神解决我一直悬而未决的难题。 html_url_ :"http://ac.qq.com/ComicView/index/id/505430/cid/1" js_url_: "http://ac.gtimg.com/media/js/ac.page.chapter.view_v2.3.5.js?v=20160826" 感激不尽。
Python爬虫抓取信息存储到excel表格后,怎么实行数据可视化
我用python爬去了起点中文网的一些信息,并且存储到excel中,现在想要实现数据可视化怎么写应该 import requests from lxml import etree from openpyxl import Workbook class Book(): def __init__(p): p.url = 'https://www.qidian.com/rank/hotsales?page={页数}' p.wb = Workbook() # class实例化 p.ws = p.wb.active # 激活工具表 p.ws.append(['书名', '作者', '类型', '连载状态']) # 添加对应的表头 def geturl(p): url = [p.url.format(页数 =i) for i in range(1,15)] return url def parse_url(p,url): response =requests.get(url,timeout = 5) return response.content.decode('utf-8','ignore') def get_list(p,html_str): html = etree.HTML(html_str) connect_list = [] lists = html.xpath("//div[@class='book-img-text']/ul/li//div[@class='book-mid-info']") for list in lists: item = {} item['书名'] = ''.join(list.xpath("./h4/a/text()")) item['作者'] = ''.join(list.xpath("./p[@class='author']/a[1]/text()")) item['类型'] = ''.join(list.xpath("./p[@class='author']/a[2]/text()")) item['连载状态'] = ''.join(list.xpath("./p[@class='author']/span/text()")) connect_list.append(item) return connect_list def save_list(p, connects): for connect in connects: p.ws.append([connect['书名'], connect['作者'], connect['类型'], connect['连载状态']]) print('保存小说信息成功') def run(p): url_list = p.geturl() for url in url_list: html_url =p.parse_url(url) connects = p.get_list(html_url) p.save_list(connects[:]) p.wb.save('book.xlsx') if __name__=='__main__': spider = Book() spider.run()
爬虫 抓取 内容 时有时无
写的 python爬虫,这两天发现 一个问题:都是同样的代码,也是抓取 同一个公众号的 同一篇文章, 每次运行标题都能取到,点赞数,阅读数的话 不是每次运行都能获取到。请教大神们 会是什么问题?
python爬虫抓取图片的疑问和原理
我想问一下 最简单的抓取图片保存下来的原理 如下面这段代码 response=urllib.request.urlopen("http://ww3.sinaimg.cn/mw600/006h1GB2jw1f1hbjv1eiwj30zk0qo44l.jpg") html=response.read() with open("ddd.JPG","wb") as f f.write(html) 这里html应该就是网页的HTML的代码段。到底如何识别它就是图片并且保存后可以显示。。。我的意思是html里面应该是包含了 HTML head div body这些标签的二进制字符串。这些东西也存入文件。。文件是自动根据图片格式把这些东西去掉了吗?
Python爬虫 急求大神帮忙 万分感谢
我用Python爬虫 爬取网页 爬出来获取特定数据 为什么大部分显示null 而且每次执行一次 数据就会增加一些 到底是代码问题还是网页问题 求大神指点代码下: def get_content(self, html): #获取一个网页的内容 div_list = html.xpath("//div[contains(@class,'listtyle')]") item_list = [] for div in div_list: for b in range(1,19): food_img= div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/img[@class='img']/@src") food_img=food_img[0] if len(food_img)>0 else None food_name = div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/div[@class='i_w']/div[@class='i']/div[@class='c1']/strong/text()") food_name = food_name[0] if len(food_name)>0 else None food_effect=div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/strong[@class='gx']/span/text()") food_effect = food_effect[0] if len(food_effect)>0 else None food_time=div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/div[@class='i_w']/div[@class='i']/div[@class='c2']/ul/li[@class='li1']/text()") food_time = food_time[0] if len(food_time)>0 else None food_taste=div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/div[@class='i_w']/div[@class='i']/div[@class='c2']/ul/li[@class='li2']/text()") food_taste = food_taste[0] if len(food_taste)>0 else None food_commentnum_likenum=div.xpath("./div[@class='listtyle1'][b]/a[@class='big']/div[@class='i_w']/div[@class='i']/div[@class='c1']/span/text()") food_commentnum_likenum = food_commentnum_likenum[0] if len(food_commentnum_likenum)>0 else None item=dict( food_img1=food_img, food_name1=food_name, food_effect1=food_effect, food_time1=food_time, food_taste1=food_taste, food_commentnum_likenum1=food_commentnum_likenum, ) item_list.append(item) return item_list
python爬虫:soup.select()抓取信息路径表达问题
大家好: 在网上看到了一段关于使用python爬虫爬取小猪短租上房源信息的代码(请见出处: https://www.cnblogs.com/november1943/p/5230924.html ) 根据这个代码想要做一些拓展:额外爬取:房屋面积 (如图所示) ![图片说明](https://img-ask.csdn.net/upload/201907/02/1562062181_722051.png) 从后台来看相关的面积信息位置如下 ![图片说明](https://img-ask.csdn.net/upload/201907/02/1562062297_920645.png) 打算使用b4库的 soup.select()功能抓取信息,但是不知道该如何告诉python 这条信息的路径... 请问大家这个信息的路径应该如何表达? 求点播 感谢大家
python爬虫如何抓取包含JavaScript的网页中的信息
这里本科生一枚。。做本研要求抓取一些数据碰到了一些问题求指教> < 我想要抓取汽车之家上关于供应商的一些数据,然后在车型详情页里找到了关于供应商的框架源代码如下(只截取有用部分): <script type="text/javascript"> //属性 document.domain = "autohome.com.cn"; var page=1; var parameters = { isPage:0, pageCount:0, kindId:-1, vId:23867, pId: 110000, cId: 110100, sId: 0, cityUrl: '/frame/cms/GetProvinceCityList?SpecId=23867&SeriesId=0&roid1=2', url: "/frame/spec/{vId}/{pId}/{cId}/{sId}/{orderType}/{pageIndex}/{pageSize}?isPage={isPage}&seriesId={seriesId}&source={source}&kindId={kindId}" , kindUrl:"/frame/cms/GetKindBySpec?specId={vId}&provinceId={pId}&cityId={cId}&countyId={sId}", panel:"#dealer-box", pageSize:5, pageIndex: 1, orderType :0, seriesId:66, source:"defalut" }; $("[name='orderBy']").click(function() { parameters.orderType = $(this).attr('data-order'); $("#orderCan .current").attr("class", "linkname"); $(this).attr("class", "linkname current"); //parameters.pageIndex = 1; var firstPage = $("#dealerListPager a[data=1]").eq(0); if (firstPage.length == 1) { firstPage.click(); } else { load(); } return false; }); seajs.config({version:"1460100712877"}); var $$; seajs.use(['jquery','pop'], function ($) { $$=$; }); $(function(){ jQuery("#orderCan a").each(function(){ if($(this).attr("data-order")==parameters.orderType) { $("#orderCan .current").attr("class","linkname"); $(this).attr("class","linkname current"); } }) }) </script> <script type="text/javascript" src="http://x.autoimg.cn/dealer/bbs/js/DealerArea20160413.js?t=2016041421"></script> 里面包含的信息应该怎么抓取呢?我是通过selenium来进入网页的框架,这些js应该怎么解析?我尝试着用前面的那些parameter凑出来URL,但是输入到浏览器中就会跳转到汽这个网站的首页,用urllib2打开的话会报错Error 10060,但是网什么的也都没有问题,是我的IP被封了还是需要一个什么特殊的代理?? 本科期间只学过python的两门课,对java没什么了解,求帮助呀QAQ谢谢大家啦
python爬虫,爬取百度百科python词条页面数据,是这个页面url的抓取不到还是其他原因?
![控制台信息](https://img-ask.csdn.net/upload/201712/07/1512637235_201308.png ![爬虫调度代码SpiderMain](https://img-ask.csdn.net/upload/201712/07/1512637414_534311.png) 1.URL管理器: class UrlManager (object): def __init__(self): self.new_urls = set() self.old_urls = set() def add_new_url(self, url): if url is None: return # 如果没有新的URL则不进行添加 if url not in self.new_urls and url not in self.old_urls: self.new_urls.add(url) def add_new_urls(self, urls): if urls is None or len(urls) == 0: return for url in urls: self.add_new_url(url) def get_new_url(self): return len(self.new_urls) != 0 def has_new_url(self): new_url = self.new_urls.pop() self.old_urls.add(new_url) return new_url 2.网页下载器: import urllib.request import urllib.response class HtmlDownloader(object): def download(self, url): if url is None: return None response = urllib.request.urlopen(url) if response.getcode() != 200: return None return response.read() 3.网页解析器: # coding:utf-8 from bs4 import BeautifulSoup import re import urllib.parse class HtmlParser(object): def parser(self, page_url, html_content): if page_url is None or html_content is None: return soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8') new_urls = self._get_new_urls(page_url, soup) new_data = self._get_new_data(page_url, soup) return new_urls, new_data def _get_new_urls(self, page_url, soup): new_urls = set() # links = soup.find_all('a', href=re.compile(r"/item/\d+\.htm")) links = soup.find_all('a', href=re.compile(r"/item/(.*)")) for link in links: new_url = link['href'] new_full_url = urllib.parse.urljoin(page_url, new_url) new_urls.add(new_url) return new_urls def _get_new_data(self, page_url, soup): res_data = {} # url res_data['url'] = page_url # 标题<dd class="lemmaWgt-lemmaTitle-title"><h1>Python</h1><h2>(计算机程序设计语言)</h2> # 简介<div class="lemma-summary" label-module="lemmaSummary"> title_node = soup.find_all('dd', class_='lemmaWgt-lemmaTitle-title').find('h1') res_data['title'] = title_node.get_text() summary_node = soup.find_all('div', class_='lemma-summary') res_data['summmary'] = summary_node.get_text() return res_data 4.页面输出: class HtmlOutputer(object): def __init__(self): self.datas=[] def collectData(self, data): if data is None: return self.datas.append(data) def output_html(self): fout = open('output.html', 'w') fout.write("<html>") fout.write("<body>") fout.write("<table>") for data in self.datas: fout.write("<tr>") fout.write("<td>%s</td>" % (data['url']).encode('utf-8')) fout.write("<td>%s</td>" % (data['title']).encode('utf-8')) fout.write("<td>%s</td>" % (data['summary']).encode('utf-8')) fout.write("</tr>") fout.write("</table>") fout.write("</body>") fout.write("</html>") fout.close()
问一个关于Python抓取页面跳转的问题(略愚蠢。。。)
真的。可能这问题真的挺愚蠢。。。但咱还是厚着脸皮问下大神了。。。 问题是这样的:我在做一个抓取我们学校教务系统课表的爬虫,登陆的已经写好了,问题出在登陆以后怎么跳转。 登陆后的页面和切换到(跳转到)课程表页面的url是一样一样的... 而且wireshark抓包也没发现任何post数据包 ![图片说明](https://img-ask.csdn.net/upload/201603/02/1456925107_867462.png) 教务系统截图如下 ![图片说明](https://img-ask.csdn.net/upload/201603/02/1456925137_961435.png) 也是没任何post包,我试了下postdata也是没抓取到课程表页面... 总结一下: 1、页面跳转后url和跳转前一致 2、没任何post数据包... 求大神解答,轻喷啊:(
关于python网络爬虫进行深度搜索出现的问题
小弟在做网络爬虫程序抓取指定网页的图片,有个要求就是用户可以输入指定的爬虫深度,然后爬虫程序需达到指定深度。小弟在写的时候,程序只能处理深度为1或者深度为2的请求,我仔细看了看是我的广度优先搜索写的和深度优先搜索混合了,但不知道怎么改。请求大佬们指出问题来。下面是我的代码块: ``` def get_href_in_depth(url_website,depth):**#url_website是请求爬虫的网站,depth为深度 root_website=url_website execute_list=[url_website] **#把每次执行的网页链接加到这个list里边,最开始就是请求的爬虫网站** for i in range(int(depth)): ** #因为输入的是deepth=input("Please specify the deep you want to reach: "),需转换为integer** for i in range(int(depth)): for t in execute_list: absolute_href_list=absolute_href(t) **#该方法会返回 t链接下所有的网页链接** max_times_number=standard_length(absolute_href_list)**#该方法返回 absolute_href_list长度的众数** for k in absolute_href_list: if len(k.split('/'))==max_times_number and len(k.split('/'))>len(root_website.split('/'))+i :**#因为链接中有'back'会回到深度-1的页面,所以根据此排除会回到之前网页的链接** os.chdir(os.path.split(os.path.realpath(__file__))[0])#在程序所在文件夹执行 mak_dir_html_saveimage(k)#该方法为根据网站保存目录并保存该网站下的所有图片比如http://www.feimax.com/images文件夹应该为www.feimax.com和在其目录下的images并保存相应网站的图片 else: absolute_href_list.remove(k)#移除回到之前网站的链接 execute_list=absolute_href_list ``` 请求大佬指出问题
python scrapy爬虫 抓取的内容只有一条,怎么破??
目标URL:http://218.92.23.142/sjsz/szxx/Index.aspx(工作需要) 主要目的是爬取网站中的信件类型、信件主题、写信时间、回复时间、回复状态以及其中链接里面的具体内容,然后保存到excel表格中。里面的链接全部都是POST方法,没有出现一个具体的链接,所以我感觉非常恼火。 目前碰到的问题: 1、 但是我只能抓到第一条的信息,后面就抓不到了。具体是这条:市长您好: 我是一名事... 2、 scrapy运行后出现的信息是: 15:01:33 [scrapy] INFO: Scrapy 1.0.3 started (bot: spider2) 2016-01-13 15:01:33 [scrapy] INFO: Optional features available: ssl, http11 2016-01-13 15:01:33 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'spider2.spiders', 'FEED_URI': u'file:///F:/\u5feb\u76d8/workspace/Pythontest/src/Scrapy/spider2/szxx.csv', 'SPIDER_MODULES': ['spider2.spiders'], 'BOT_NAME': 'spider2', 'USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5', 'FEED_FORMAT': 'CSV'} 2016-01-13 15:01:36 [scrapy] INFO: Enabled extensions: CloseSpider, FeedExporter, TelnetConsole, LogStats, CoreStats, SpiderState 2016-01-13 15:01:38 [scrapy] INFO: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats 2016-01-13 15:01:38 [scrapy] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware 2016-01-13 15:01:38 [scrapy] INFO: Enabled item pipelines: 2016-01-13 15:01:38 [scrapy] INFO: Spider opened 2016-01-13 15:01:38 [scrapy] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2016-01-13 15:01:38 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023 2016-01-13 15:01:39 [scrapy] DEBUG: Crawled (200) <GET http://218.92.23.142/sjsz/szxx/Index.aspx> (referer: None) 2016-01-13 15:01:39 [scrapy] DEBUG: Filtered duplicate request: <GET http://218.92.23.142/sjsz/szxx/Index.aspx> - no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicates) 2016-01-13 15:01:39 [scrapy] DEBUG: Crawled (200) <GET http://218.92.23.142/sjsz/szxx/Index.aspx> (referer: http://218.92.23.142/sjsz/szxx/Index.aspx) 2016-01-13 15:01:39 [scrapy] DEBUG: Crawled (200) <POST http://218.92.23.142/sjsz/szxx/Index.aspx> (referer: http://218.92.23.142/sjsz/szxx/Index.aspx) 2016-01-13 15:01:39 [scrapy] DEBUG: Redirecting (302) to <GET http://218.92.23.142/sjsz/szxx/GkResult.aspx?infoid=3160105094757> from <POST http://218.92.23.142/sjsz/szxx/Index.aspx> 2016-01-13 15:01:39 [scrapy] DEBUG: Crawled (200) <GET http://218.92.23.142/sjsz/szxx/GkResult.aspx?infoid=3160105094757> (referer: http://218.92.23.142/sjsz/szxx/Index.aspx) 2016-01-13 15:01:39 [scrapy] DEBUG: Scraped from <200 http://218.92.23.142/sjsz/szxx/GkResult.aspx?infoid=3160105094757> 第一条的信息(太多了,就省略了。。。。) 2016-01-13 15:01:39 [scrapy] DEBUG: Crawled (200) <POST http://218.92.23.142/sjsz/szxx/Index.aspx> (referer: http://218.92.23.142/sjsz/szxx/Index.aspx) ………… 后面的差不多,就不写出来了 2016-01-13 15:01:41 [scrapy] INFO: Stored csv feed (1 items) in: file:///F:/快盘/workspace/Pythontest/src/Scrapy/spider2/szxx.csv 2016-01-13 15:01:41 [scrapy] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 56383, 'downloader/request_count': 17, 'downloader/request_method_count/GET': 3, 'downloader/request_method_count/POST': 14, 'downloader/response_bytes': 118855, 'downloader/response_count': 17, 'downloader/response_status_count/200': 16, 'downloader/response_status_count/302': 1, 'dupefilter/filtered': 120, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2016, 1, 13, 7, 1, 41, 716000), 'item_scraped_count': 1, 'log_count/DEBUG': 20, 'log_count/INFO': 8, 'request_depth_max': 14, 'response_received_count': 16, 'scheduler/dequeued': 17, 'scheduler/dequeued/memory': 17, 'scheduler/enqueued': 17, 'scheduler/enqueued/memory': 17, 'start_time': datetime.datetime(2016, 1, 13, 7, 1, 38, 670000)} 2016-01-13 15:01:41 [scrapy] INFO: Spider closed (finished) 具体的代码如下(代码写的不好,误喷): import sys, copy reload(sys) sys.setdefaultencoding('utf-8') sys.path.append("../") from scrapy.spiders import CrawlSpider from scrapy.http import FormRequest, Request from scrapy.selector import Selector from items import Spider2Item class Domeszxx(CrawlSpider): name = "szxx" allowed_domain = ["218.92.23.142"] start_urls = ["http://218.92.23.142/sjsz/szxx/Index.aspx"] item = Spider2Item() def parse(self, response): selector = Selector(response) # 获得下一页的POST参数 viewstate = ''.join(selector.xpath('//input[@id="__VIEWSTATE"]/@value').extract()[0]) eventvalidation = ''.join(selector.xpath('//input[@id="__EVENTVALIDATION"]/@value').extract()[0]) nextpage = ''.join( selector.xpath('//input[@name="ctl00$ContentPlaceHolder1$GridView1$ctl12$txtGoPage"]/@value').extract()) nextpage_data = { '__EVENTTARGET': 'ctl00$ContentPlaceHolder1$GridView1$ctl12$cmdNext', '__EVENTARGUMENT': '', '__VIEWSTATE': viewstate, '__VIEWSTATEGENERATOR': '9DEFE542', '__EVENTVALIDATION': eventvalidation, 'ctl00$ContentPlaceHolder1$GridView1$ctl12$txtGoPage': nextpage } # 获得抓取当前内容的xpath xjlx = ".//*[@id='ContentPlaceHolder1_GridView1_Label2_" xjzt = ".//*[@id='ContentPlaceHolder1_GridView1_LinkButton5_" xxsj = ".//*[@id='ContentPlaceHolder1_GridView1_Label4_" hfsj = ".//*[@id='ContentPlaceHolder1_GridView1_Label5_" nextlink = '//*[@id="ContentPlaceHolder1_GridView1_cmdNext"]/@href' # 获取当前页面公开答复的行数 listnum = len(selector.xpath('//tr')) - 2 # 获得抓取内容 for i in range(0, listnum): item_all = {} xjlx_xpath = xjlx + str(i) + "']/text()" xjzt_xpath = xjzt + str(i) + "']/text()" xxsj_xpath = xxsj + str(i) + "']/text()" hfsj_xpath = hfsj + str(i) + "']/text()" # 信件类型 item_all['xjlx'] = selector.xpath(xjlx_xpath).extract()[0].decode('utf-8').encode('gbk') # 信件主题 item_all['xjzt'] = str(selector.xpath(xjzt_xpath).extract()[0].decode('utf-8').encode('gbk')).replace('\n', '') # 写信时间 item_all['xxsj'] = selector.xpath(xxsj_xpath).extract()[0].decode('utf-8').encode('gbk') # 回复时间 item_all['hfsj'] = selector.xpath(hfsj_xpath).extract()[0].decode('utf-8').encode('gbk') # 获取二级页面中的POST参数 eventtaget = 'ctl00$ContentPlaceHolder1$GridView1$ctl0' + str(i + 2) + '$LinkButton5' content_data = { '__EVENTTARGET': eventtaget, '__EVENTARGUMENT': '', '__VIEWSTATE': viewstate, '__VIEWSTATEGENERATOR': '9DEFE542', '__EVENTVALIDATION': eventvalidation, 'ctl00$ContentPlaceHolder1$GridView1$ctl12$txtGoPage': nextpage } # 完成抓取信息的传递 yield Request(url="http://218.92.23.142/sjsz/szxx/Index.aspx", callback=self.send_value, meta={'item_all': item_all, 'content_data': content_data}) # 进入页面中的二级页面的链接,必须利用POST方法才能提交,无法看到直接的URL,同时将本页中抓取的item和进入下一页的POST方法进行传递 # yield Request(url="http://218.92.23.142/sjsz/szxx/Index.aspx", callback=self.getcontent, # meta={'item': item_all}) # yield FormRequest(url="http://218.92.23.142/sjsz/szxx/Index.aspx", formdata=content_data, # callback=self.getcontent) # 进入下一页 if selector.xpath(nextlink).extract(): yield FormRequest(url="http://218.92.23.142/sjsz/szxx/Index.aspx", formdata=nextpage_data, callback=self.parse) # 将当前页面的值传递到本函数并存入类的item中 def send_value(self, response): itemx = response.meta['item_all'] post_data = response.meta['content_data'] Domeszxx.item = copy.deepcopy(itemx) yield FormRequest(url="http://218.92.23.142/sjsz/szxx/Index.aspx", formdata=post_data, callback=self.getcontent) return # 将二级链接中值抓取并存入类的item中 def getcontent(self, response): item_getcontent = { 'xfr': ''.join(response.xpath('//*[@id="lblXFName"]/text()').extract()).decode('utf-8').encode('gbk'), 'lxnr': ''.join(response.xpath('//*[@id="lblXFQuestion"]/text()').extract()).decode('utf-8').encode( 'gbk'), 'hfnr': ''.join(response.xpath('//*[@id="lblXFanswer"]/text()').extract()).decode('utf-8').encode( 'gbk')} Domeszxx.item.update(item_getcontent) yield Domeszxx.item return
为何用Python做爬虫时抓取下来的页面跟源代码不一样?
代码如下: # -*- coding:utf-8 -*- import urllib import urllib2 import re baseURL = 'http://zhidao.baidu.com/question/491268910.html' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'} #request = urllib2.Request(baseURL) request = urllib2.Request(url=baseURL,headers=headers) response = urllib2.urlopen(request) print response.read().decode("GBK") 我用上面的代码爬取一个百度知道的答案,把抓取到的信息打印出来为什么有的地方跟网页审查元素所显示的代码不一样? 网页原来的段落为:![图片说明](https://img-ask.csdn.net/upload/201604/05/1459841312_538797.png) 这段话对应的源代码为:![图片说明](https://img-ask.csdn.net/upload/201604/05/1459841401_109843.png) 抓取网页信息后的对应的代码为:![图片说明](https://img-ask.csdn.net/upload/201604/05/1459841477_324454.png) 我尝试了一个,在提取页面时,加载一个headers头部,但是结果还是不行,求各路大神指点,直接把解决办法附在评论区里,谢谢各路大神了。。。
用python抓取爬虫时无法抓取::before与::after之间的内容
在抓取https://mm.taobao.com/search_tstar_model.htm?spm=719.1001036.1998606017.2.4Cf8Nt 的时候发现::before和::after之间的元素抓取不到,通过BeautifulSoup解析出来的对象中寻找不到"li"标签。 ![图片说明](https://img-ask.csdn.net/upload/201610/06/1475723763_404259.png) 请问这是“::before”引起的问题吗?如果是,如何解决?如果不是,可能是什么问题? 期待回复,谢谢!
Python爬虫时提交表单时总是跳转到登陆界面
使用Python的request进行post表单提交时,传递的参数都是对的,但是总是会跳转到登陆界面 1、代码 ![图片说明](https://img-ask.csdn.net/upload/201611/07/1478522366_260727.png) 2、使用Fillder抓包抓取的数据 ![图片说明](https://img-ask.csdn.net/upload/201611/07/1478522395_465898.png) 3、最后返回的登录结果 ![图片说明](https://img-ask.csdn.net/upload/201611/07/1478522416_296746.png)
Python爬虫soup.findAll("li", {"class": "result"})为空
``` 大家好~ 我之前写的爬虫是单独针对某个页面的,比如新浪微博。这次需要在全网范围查询关于“开灯”有关的句子或文章,但是soup.findall("li",{"class":"result"})的结果一直是空。求助,谢谢。 PS:网上参考其他的例子,也都是在这个地方出问题,空的。。。 代码如下: #-*-coding:utf-8-*- __author__ = 'Daniel' #python3.5 #'爬取关于开灯的新闻' import re import urllib import chardet from bs4 import BeautifulSoup def remove_js_css(content): r = re.compile(r'''<scrip.*?</scrip>''', re.I|re.M|re.S) s = r.sub('', content) r = re.compile(r'''<style.*?</style>''', re.I|re.M|re.S) s = r.sub('', s) r = re.compile(r'''<!--.*?-->''', re.I|re.M|re.S) s = r.sub('', s) r = re.compile(r'''<meta.*?>''', re.I|re.M|re.S) s = r.sub('', s) r = re.compile(r'''<ins.*?</ins>''', re.I|re.M|re.S) s = r.sub('', s) return s def remove_empty_line(content): r = re.compile(r'''^\s+$''', re.M|re.S) s = r.sub('', content) r = re.compile(r'''\n+''', re.M|re.S) s = r.sub('\n', s) return s def remove_any_tag(s): s = re.sub(r'''<[^>]+>''', '', s) return s.strip() def remove_any_tag_but_a(s): text = re.findall(r'''<a[^r][^>]*>(.*?)</a>''', s, re.I|re.S|re.S) text_b = remove_any_tag(s) return len(''.join(text)), len(text_b) def remove_image(s, n=50): image = 'a' * n r = re.compile(r'''<img.*?>''', re.I|re.M|re.S) s = r.sub(image, s) return s def remove_video(s, n=1000): video = 'a' * n r = re.compile(r'''<embed.*?>''', re.I|re.M|re.S) s = r.sub(video, s) return s def sum_max(values): cur_max = values[0] glo_max = -99999 left, right = 0, 0 for index, value in enumerate(values): cur_max += value if(cur_max > glo_max): glo_max = cur_max right = index elif(cur_max < 0): cur_max = 0 for i in range(right, -1, -1): glo_max -= values[i] if abs(glo_max < 0.0001): left = i break return left, right + 1 def method_1(content, k = 1): if not content: return None, None, None, None tmp = content.split('\n') group_value = [] for i in range(0, len(tmp), k): group = '\n'.join(tmp[i:i+k]) group = remove_image(group) group = remove_video(group) text_a, text_b = remove_any_tag_but_a(group) temp = (text_b - text_a) - 8 group_value.append(tmp) left, right = sum_max(group_value) return left, right, len('\n'.join(tmp[:left])), len('\n'.join(tmp[:right])) def extract(content): content = remove_empty_line(remove_js_css(content)) left, right, x, y = method_1(content) return '\n'.join(content.split('\n')[left:right]) #输入url,将其新闻页的正文输入txt def extract_news_content(web_url, file_name): request = urllib.Request(web_url) #在请求加上头信息,伪装成浏览器访问 request.add_header('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6') opener = urllib.build_opener() html = opener.open(request).read() infoencode = chardet.detect(html)['encoding']##通过第3方模块来自动提取网页的编码 if html != None and infoencode != None:#提取内容不为空,error.或者用else html = html.decode(infoencode, 'ignore') soup = BeautifulSoup(html) content = soup.renderContents() content_text = extract(content)#提取新闻网页中的正文部分,化为无换行的一段文字 content_text = re.sub("&nbsp;"," ",content_text) content_text = re.sub("&gt;","",content_text) content_text = re.sub("&quot;",'""',content_text) content_text = re.sub("<[^>]+>","",content_text) content_text = re.sub("\n","",content_text) file = open(file_name,'a')#append file.write(content_text) file.close() #抓取百度新闻搜索结果:中文搜索,前10页,url:key=关键词 def search(key_word): search_url = 'http://news.baidu.com/ns?word=key_word&tn=news&from=news&cl=2&rn=20&ct=1' req = urllib.request.urlopen(search_url.replace('key_word', key_word)) real_visited = 0 for count in range(10):#前10页 html = req.read() soup = BeautifulSoup(html) content = soup.findAll("li", {"class": "result"}) #resultset object num = len(content) for i in range(num): #先解析出来所有新闻的标题、来源、时间、url p_str = content[i].find('a') #if no result then nontype object contenttitle = p_str.renderContents() contenttitle = contenttitle.decode('utf-8', 'ignore')#need it contenttitle = re.sub("<[^>]+>", "", contenttitle) contentlink = str(p_str.get("href")) #存放顺利抓取的url,对比 visited_url = open(r'visited-cn.txt', 'r')#是否已经爬过 visited_url_list = visited_url.readlines() visited_url.close()#及时close exist = 0 for item in visited_url_list: if contentlink == item: exist = 1 if exist != 1:#如果未被访问url p_str2 = content[i].find('p').renderContents() contentauthor = p_str2[:p_str2.find("&nbsp;&nbsp")]#来源 contentauthor = contentauthor.decode('utf-8', 'ignore')#时 contenttime = p_str2[p_str2.find("&nbsp;&nbsp") + len("&nbsp;&nbsp") + 1:] contenttime = contenttime.decode('utf-8', 'ignore') #第i篇新闻,filename="D:\\Python27\\newscn\\%d.txt"%(i) #file = open(filename,'w'),一个txt一篇新闻 real_visited += 1 file_name = r"newscn\%d.txt"%(real_visited) file = open(file_name,'w') file.write(contenttitle.encode('utf-8')) file.write(u'\n') file.write(contentauthor.encode('utf-8')) file.write(u'\n') file.write(contenttime.encode('utf-8')) file.write(u'\n'+contentlink+u'\n') file.close() extract_news_content(contentlink, file_name)#还写入文件 visited_url_list.append(contentlink)#访问之 visited_url = open(r'visited-cn.txt', 'a')#标记为已访问,永久存防止程序停止后丢失 visited_url.write(contentlink+u'\n') visited_url.close() if len(visited_url_list) >= 120: break #解析下一页 if count == 0: next_num = 0 else: next_num = 1 next_page = 'http://news.baidu.com' + soup('a',{'href':True,'class':'n'})[next_num]['href'] # search for the next page#翻页 print(next_page) req = urllib.urlopen(next_page) if __name__=='__main__': #key_word = input('input key word:') key_word = 'helloworld' search(key_word) ```
Scrapy response 请求200 但是返回的页面不完整
python 爬虫抓取数据时,请求状态码200,但是返回的页面信息不完整
python 爬虫 用xpath抓取多行文本,如何实现多重遍历?
萌新学习python爬虫,在爬取网贷之家平台信息的时候,通过xpath将某一平台的网友印象三个关键词保存在一个数组中,输出到excel中。 现在我希望能够把该页面上25个平台信息都爬取到并保存,请问xpath怎么写循环?这里的25个信息代码结构是一模一样的,只有li从[1]-[25]。谢谢 ``` import requests import pandas as pd from lxml import etree from fake_useragent import UserAgent ua = UserAgent() headers['User-Agent']=ua.random url = 'https://www.wdzj.com/dangan/search?filter=e1&currentPage=1' response = requests.get(url,headers = headers).text s = etree.HTML(response) file_yinxiang = [] file_yinxiang1 = s.xpath('//*[normalize-space(@id)="showTable"]/ul/li[1]/div[2]/a/div[5]/span/text()')#实现li从1-25的循环 file_yinxiang.append(file_yinxiang1) df = pd.DataFrame(file_yinxiang) df.to_excel('wdzj_p2p.xlsx') ``` 网上查了很多资料,并不是很清楚,目前不循环是这个结果: ![图片说明](https://img-ask.csdn.net/upload/201903/18/1552887724_381412.png) 这是网页上我要爬取的内容: ![图片说明](https://img-ask.csdn.net/upload/201903/18/1552887858_653935.png)
python爬虫爬取图片和图片的标题保存时出现IOError
import urllib import urllib2 import re import os #爬取索引页面源代码 siteURL='https://www.warningsignsdirect.co.uk/index.php?cPath=518' request=urllib2.Request(siteURL) response=urllib2.urlopen(request) page=response.read().decode('utf-8') print u"已爬取索引页面源代码" os.chdir("C:\Users\hey_fall\Desktop") #抓取页面中指定的图片 pattern=re.compile('<td align="center" class="smallText" width="33%" valign="middle"><a href=".*?"><img src=".*?" alt=".*?" title=".*?" .*? /><br><br>.*?</a><br><br><br><br></td>',re.S) content=re.findall(pattern,page) patternImg=re.compile('<img src="(.*?)"',re.S) images=re.findall(patternImg,str(content)) print u"已爬取该网页图片" #抓取图片的说明文本 patternIntroductions=re.compile('title="(.*?)"',re.S) Introductions=re.findall(patternIntroductions,str(content)) #去除匹配字符中的转义字符 number=0 for introduction in Introductions: Introductions[number]=str(introduction).replace('\\','') number+=1 print u"已爬取图片的说明文本" #抓取说明文本的标题 patternTitle=re.compile('<title>(.*?) </title>') Title=re.findall(patternTitle,page) print u"已爬取文本标题" #创建文件夹 path=os.getcwd() title=Title[0] new_path=os.path.join(path,title) if not os.path.isdir(new_path): os.makedirs(new_path) os.chdir(new_path) print u"已创建文件夹",new_path #保存图片的说明文本 IntroductionName=Title[0]+".txt" f=open(IntroductionName,'w+') for introduction in Introductions: f.write(introduction+'\n') f.close() print u"图片的说明文本已保存到",new_path #保存抓取到的图片 number=0 for imageURL in images: filename=Introductions[number]+'.jpg' url='https://www.warningsignsdirect.co.uk'+'/'+imageURL urllib.urlretrieve(url,filename) number+=1 print u"图片已保存到",new_path print u"该网页内容爬取完毕"
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问