当前位置: 首页 > news >正文

网站群建设公司排行榜6上海门户网

网站群建设公司排行榜6,上海门户网,便捷网站建设,wordpress站点地址没更改寫了兩篇之后#xff0c;我覺得關於爬蟲#xff0c;重點還是分析過程分析些什么呢#xff1a;1)首先明確自己要爬取的目標比如這次我們需要爬取的是使用百度搜索之后所有出來的url結果2)分析手動進行的獲取目標的過程#xff0c;以便以程序實現比如百度#xff0c;我們先進…寫了兩篇之后我覺得關於爬蟲重點還是分析過程分析些什么呢1)首先明確自己要爬取的目標比如這次我們需要爬取的是使用百度搜索之后所有出來的url結果2)分析手動進行的獲取目標的過程以便以程序實現比如百度我們先進行輸入關鍵詞搜索然后百度反饋給我們搜索結果頁我們再一個個進行點擊查詢3)思考程序如何實現並克服實現中的具體困難那么我們就先按上面的步驟來我們首先認識到所搜引擎提供一個搜索框讓用戶進行輸入然后點擊執行我們可以先模擬進行搜索發現點擊搜索之后的完整url中有一項很關鍵如下http://www.baidu.com/s?wd搜索內容......后面的內容我們嘗試去除之后再次請求上面的url發現返回的信息一樣我們就可以斷定請求的url只需要填入wd這個參數即可接着我們就應該進行嘗試requests.get()查看是否能正常返回頁面防止百度的反爬蟲嘿幸運的是返回頁面正常哈哈~(當然如果沒有返回到正常信息只要設置好headers或者嚴格的cookies就行了)importrequestsurl http://www.baidu.com/s?wd......rrequests.get(url)print r.status_code,r.content好接下來我們就想知道怎么爬取所有的結果我么再次對url進行分析發現url中還有一項很關鍵是控制頁碼的項http://www.baidu.com/s?wd...pnx這個x是每10為一頁第一頁為0而且一共76頁也就是750最大值大於750則返回第一頁接下來我們就可以對抓取到的頁面進行分析還是使用友好的beautifulsoup我們通過分析發現我們所需要的url在標簽a中的href里而且格式是這樣http://www.baidu.com/link?url......因為還存在很多別的url混淆所以我們只需要進行一個篩選就行了而且這個獲得的url並不是我們想要的url結果這只是百度的一個跳轉鏈接但是讓我欣慰的是當我們隊這個跳轉鏈接進行get請求后直接返回get對象的url便是我們想要的結果鏈接了然后我們再次進行嘗試發現還是沒有別的反爬蟲機制哈哈本來的想法是我們是否要先進行一個對新的url返回的狀態碼進行一個篩選不是200就不行(甚至還需要些headers)但是我發現其實就算不是200我們只要返回請求對象的url就行了和能不能正常返回沒關系因為我們的目的並不是請求的頁面結果而是請求的url所以只需要全部打印出來就行了當然我建議寫一個簡單的籠統的headers寫入get這樣至少能排除一些不必要的結果接着我們請求的完整思路就差不多了上代碼#codingutf-8importrequestsimportsysimportQueueimportthreadingfrom bs4 importBeautifulSoup as bsimportreheaders{......}classbaiduSpider(threading.Thread):def __init__(self,queue,name):threading.Thread.__init__(self)self._queuequeueself._namenamedefrun(self):while notself._queue.empty():urlself._queue.get()try:self.get_url(url)exceptException,e:printepass#一定要異常處理不然中途會停下爬取的內容就不完整了defget_url(self,url):r requests.get(url url,headers headers)soup bs(r.content,html.parser)urls soup.find_all(namea,attrs{href:re.compile((.))})#for i in urls:#print i#抓取百度搜索結果中的a標簽其中href是包含了百度的跳轉地址for i inurls:if www.baidu.com/link?url in i[href]:a requests.get(url i[href],headers headers)#對跳轉地址進行一次訪問返回訪問的url就能得到我們需要抓取的url結果了#if a.status_code 200:#print a.urlwith open(E:/url/self._name.txt) as f:if a.url not inf.read():f open(E:/url/self._name.txt,a)f.write(a.url\n)f.close()defmain(keyword):namekeywordf open(E:/url/name.txt,w)f.close()queueQueue.Queue()for i in range(0,760,10):queue.put(http://www.baidu.com/s?wd%spn%s%(keyword,str(i)))threads[]thread_count 10for i inrange(thread_count):spiderbaiduSpider(queue,name)threads.append(spider)for i inthreads:i.start()for i inthreads:i.join()print Its down,sir!if __name__ __main__:if len(sys.argv) ! 2:print no keywordprint Please enter keywordsys.exit(-1)else:main(sys.argv[1])我們工具的功能就是python 123.py keyword就能將url結果寫入文件這邊sys我有話講在if __name__ __main__中先進行一個判斷如果輸入的字段是一個那么我們就返回提醒信息讓用戶進行鍵入如果是兩個那么就將第二個鍵入記為keyword進行操作當然這邊邏輯有個缺陷就是大於兩個字符會不會有別的問題(別的問題哦)值得研究一下但這不是我們這篇的重點好啦今天的百度url結果手收集就那么多啦謝謝觀看哦
http://www.zqtcl.cn/news/953929/

相关文章:

  • 网站广东省备案国产最好的a级suv88814
  • 没有公司怎么做网站西安市市政建设网站
  • 北京网站制作net2006装饰网站建设策划书
  • 建立什么网站中小学图书馆网站建设
  • 襄阳网站建设外包任县附近网站建设价格
  • led灯网站建设案例有没有什么东西可以做网站
  • 网站可视化设计企业网络管理系统
  • 优惠券怎做网站南宁网站公司
  • 灌南县规划局网站理想嘉苑规划建设那些公司做网站好
  • 大型网站开发的主流语言wordpress 连接flickr
  • 制作一个网站流程怎样做网站运营
  • 可以完成交易的网站 做微信公众号电商网站开发
  • 上海市建设安全协会官方网站机械加工怎么找客户
  • 郑州驾校网站建设互联网公司可通过数据分析人们的哪些方面
  • 珠海杰作网站建设网络公司做一个关于电影的网页设计
  • 电子商务网站建设需要哪些步骤网站开发维护合同书
  • 顺德网站设计成都网站优化方式
  • 宁波建网站哪家好用点网站后台 更新缓存
  • 如何推广网站链接做旅游网站的目的
  • 网站规划与设计课程设计中企动力网站建设 长春
  • 最新网站建设哪家公司好wordpress 顶部图片
  • 有什么网站可以做一起作业公司简介优秀文案
  • 太仓住房和城乡建设局网站seo网页推广
  • 网络公司 网站源码网页源代码修改了影响别人吗
  • 网站后台是怎样制作的app开发公司排行榜做软件的公司
  • 有专门做网站的公司吗西安分类信息seo公司
  • 重庆璧山网站制作公司哪家专业商城网站建设 优帮云
  • 双语网站建设费用安徽省芜湖建设定额网站
  • 常州市城乡建设局网站wordpress 阿里云cdn
  • 福州制作网站设计哪里比较好百度网址大全官方网站