Python 자동 블 로그 조회 수 인 스 턴 스 코드

9442 단어 Python조회 수
사고의 근원.
오늘 은 우연 한 기회 에 다른 사람 이 현재 의'양 을 닦 는'행 위 를 이야기 하 는 것 을 듣 고 호기심 을 불 러 일 으 켰 다.그리고 requests 모듈 이 저 에 게 유용 하 다 는 것 을 보고 간단 한 테스트 사례 를 썼 습 니 다.신기 하 게 도 이 방법 이 효과 가 있다 는 것 을 발견 했다.그럼 뭘 더 기 다 려?
전주
생각 은 간단 하 다.바로 요청 을 보 내 는 실현 이 라면 된다.코드 는 다음 과 같 습 니 다:

headers = {
  'referer':'http://jb51.net/',
  'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
}

def getHtml(url,headers):
  req = urllib2.Request(url,headers=headers)
  page = urllib2.urlopen(req)
  html = page.read()
  return html
목표 url 과 headers 를 수 동 으로 추가 하면 됩 니 다.나 는 자 연 스 럽 게 내 것 으로 테스트 를 해 볼 것 이다.
코드 를 실행 해 보 았 는데,확실히 조회 수 를 늘 릴 수 있 었 다.
느 린 성장
기왕 이런 방안 이 실행 가능 하 다 는 것 은 사고방식 이 정확 하 다 는 것 을 설명 한다.그래서 우 리 는 자 연 스 럽 게 순환 을 쓸 생각 을 하 게 될 것 이다.이렇게 하면 대량의 조회 증 가 를 실현 할 수 있 지 않 습 니까?
예,저 는 확실히 이렇게 했 습 니 다.코드 는 다음 과 같 습 니 다:

i= 0
while i < 10:
  url = 'http://jb51.net/marksinoberg/article/details/51501377'
  getHtml(url,headers)
처음에는 블 로그 수가 늘 어 나 는 것 을 뚜렷하게 볼 수 있 습 니 다.(^ ^)히히...........................................................그러나 호황 이 길지 않 아 조회 수가 10 번 증가 한 것 을 발견 했다.그냥.
그 다음 에 추가 할 수 없습니다.서버 가 저 에 게 이 방문 에 대해 어느 정도 제한 을 했 을 것 입 니 다.그렇지 않 으 면 이치 대로 말 하면 가능 할 것 입 니 다.
온갖 방법 을 다 강구 하 다.
'위 에는 정책 이 있 고 아래 에는 대책 이 있다'는 말 이 있 듯 이 나 는 당연히 이 제약 을 받 을 수 없다.그래서 나 는 나의 IP 를 기록 한 것 이 라 고 추측 했다.그리고 나의 방문 횟수 에 약간의 제한 을 추가 했다.
나의 해결 방법:
  • 프 록 시 IP 에 접근 합 니 다.그러나 서버 가 없 는 것 을 고려 하여 IP 에 접근 할 수 없습니다.
  • IP 변경:그렇다면 제 IP 를 바 꿔 서 방문 할 방법 을 생각해 보 겠 습 니 다.그러면 자신의 IP 를 어떻게 바 꿉 니까?지금 생각해 보면 후회 가 돼 요.그때 컴퓨터 네트워크 가 수업 을 잘 듣 지 못 했 고 IP 사기 가 잘 배우 지 못 했 어 요.그렇지 않 으 면 지금 쓸 수 있 잖 아 요.하지만 모든 길 은 로마 로 통 하 잖 아.나 는 다른 방법 이 있어.다음 과 같다.
  • C:\Users\Administrator>ipconfig /release
    Windows IP 설정
    로 컬 연결 에서 어떠한 작업 도 수행 할 수 없습니다.미디어 연결 이 끊 겼 습 니 다.
    무선 랜 어댑터 무선 네트워크 연결:
       특정 DNS 접 두 사 를 연결 합 니 다......:
       로 컬 링크 IPv 6 주소.....:fe80::1d9f:d97b:fd16:1f6f%
       기본 게 이 트 웨 이.............................................................
    이 더 넷 어댑터 로 컬 연결:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다.
    이 더 넷 어댑터 VMware 네트워크 어댑터 VMnet 1:
       특정 DNS 접 두 사 를 연결 합 니 다......:
       로 컬 링크 IPv 6 주소.....:fe80::359 d:e81d:741:f257%1
       IPv 4 주소.......:192.168.229.1
       서브 넷 마스크  . . . . . . . . . . . . : 255.255.255.0
       기본 게 이 트 웨 이.............................................................
    이 더 넷 어댑터 VMware 네트워크 어댑터 VMnet 8:
       특정 DNS 접 두 사 를 연결 합 니 다......:
       로 컬 링크 IPv 6 주소.....:fe80::94b1:d10f:b68:101d%1
       IPv 4 주소......:192.168.244.1
       서브 넷 마스크  . . . . . . . . . . . . : 255.255.255.0
       기본 게 이 트 웨 이.............................................................
    이 더 넷 어댑터 VirtualBox Host-Only Network:
       특정 DNS 접 두 사 를 연결 합 니 다......:
       로 컬 링크 IPv 6 주소.....:fe80::a5eb:545 c:7d 89:9451%
       IPv 4 주소......:192.168.56.1
       서브 넷 마스크  . . . . . . . . . . . . : 255.255.255.0
       기본 게 이 트 웨 이.............................................................
    터널 어댑터 isatap.{4F399971-B739-4B71-BD79-E48233EEC9BE}:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    터널 어댑터 isatap.{1860 C94E-1007-4418-9A26-7D8AA8F06E 15}:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    터널 어댑터 isatap.Ourdeda.cn:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    터널 어댑터 isatap.dlut.edu.cn:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    터널 어댑터 isatap.{6F7F27ED-942 E-4EFB-ACF2-A4 E8793B161D}:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    C:\Users\Administrator>ipconfig /renew
    Windows IP 설정
    로 컬 연결 에서 어떠한 작업 도 수행 할 수 없습니다.미디어 연결 이 끊 겼 습 니 다.
    무선 랜 어댑터 무선 네트워크 연결:
       특정 DNS 접 두 사 를 연결 합 니 다......:
       로 컬 링크 IPv 6 주소.....:fe80::1d9f:d97b:fd16:1f6f%12
       IPv 4 주소......:192.168.5.70
       서브 넷 마스크  . . . . . . . . . . . . : 255.255.252.0
       기본 게 이 트 웨 이................................................................
    이 더 넷 어댑터 로 컬 연결:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다.
    이 더 넷 어댑터 VMware 네트워크 어댑터 VMnet 1:
       특정 DNS 접 두 사 를 연결 합 니 다......:
       로 컬 링크 IPv 6 주소.....:fe80::359 d:e81d:741:f257%14
       IPv 4 주소.......:192.168.229.1
       서브 넷 마스크  . . . . . . . . . . . . : 255.255.255.0
       기본 게 이 트 웨 이.............................................................
    이 더 넷 어댑터 VMware 네트워크 어댑터 VMnet 8:
       특정 DNS 접 두 사 를 연결 합 니 다......:
       로 컬 링크 IPv 6 주소.....:fe80::94b 1:d10f:b68:101d%15
       IPv 4 주소......:192.168.244.1
       서브 넷 마스크  . . . . . . . . . . . . : 255.255.255.0
       기본 게 이 트 웨 이.............................................................
    이 더 넷 어댑터 VirtualBox Host-Only Network:
       특정 DNS 접 두 사 를 연결 합 니 다......:
       로 컬 링크 IPv 6 주소.....:fe80::a5eb:545 c:7d 89:9451%16
       IPv 4 주소......:192.168.56.1
       서브 넷 마스크  . . . . . . . . . . . . : 255.255.255.0
       기본 게 이 트 웨 이.............................................................
    터널 어댑터 isatap.{4F399971-B739-4B71-BD79-E48233EEC9BE}:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    터널 어댑터 isatap.{1860 C94E-1007-4418-9A26-7D8AA8F06E 15}:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    터널 어댑터 isatap.Ourdeda.cn:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    터널 어댑터 isatap.dlut.edu.cn:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    터널 어댑터 isatap.{6F7F27ED-942 E-4EFB-ACF2-A4 E8793B161D}:
       미디어 상태  . . . . . . . . . . . . : 미디어 가 끊 겼 습 니 다
       특정 DNS 접 두 사 를 연결 합 니 다......:
    네,다 들 보 셨 을 거 예요.핵심 적 인 두 가지 명령 은
    
    //         
    ipconfig / release //     ,
    ipconfig /renew  //     IP
    이렇게 하면 기본적으로 자신의 IP 를 바 꾸 는 데 효과 가 있다.특히 랜 사용자 들 에 게 는
    그래서 저 는 Python 코드 에서 시스템 의 cmd 명령 을 호출 하면 자신의 IP 를 동적 으로 바 꿀 수 있 습 니 다.제 가 원 하 는 걸 이 루 었 어 요.
    어 려 운 문제
    IP 문 제 는 해 결 됐 지만 이렇게 닦 으 면 너무 느 려 요.경로 표 업데이트 에 시간 이 필요 하기 때 문 입 니 다.이것 은 코드 운행 속도 에 비해 정말 느 리 고 느리다.그리고 매번 10 개의 조회 수 만 나 올 수 있다.어?좀 어색 하 긴 한데.이렇게 많은 힘 을 들 여서 겨우 열 개의 조회 수 를 닦 았 다.이 문 제 를 어떻게 해결 합 니까?
    나 도 사실 이 문 제 를 진정 으로 해결 하지 못 했 지만 이 제한 도 특별히 강하 지 않다 는 것 을 알 게 되 었 다.왜냐하면 나 는 중간 에 밥 을 먹 었 기 때문에 돌아 올 때 원래 의 IP 가 다시 도 배 될 수 있다 는 것 을 알 게 되 었 다.한 45 분 정도 간격 이 죠!이것 은 돌파 점 이다.
    소스 코드
    사실 사고방식 은 매우 간단 하 다.바로 온갖 방법 을 다 강구 하여 문 제 를 해결 하 는 것 이다.상대방 의 시스템 이 아무리 견고 하 더 라 도 천의무봉 일 수 는 없 으 니 반드시 해결 방법 이 있 을 것 이다.다음은 코드.
    
    # coding:utf-8
    
    #  __author__ = 'Mark sinoberg'
    #  __date__ = '2016/5/26'
    #  __Desc__ =                 
    
    import urllib2,re
    from bs4 import BeautifulSoup
    
    def getHtml(url,headers):
      req = urllib2.Request(url,headers=headers)
      page = urllib2.urlopen(req)
      html = page.read()
      return html
    
    def parse(data):
      content = BeautifulSoup(data,'lxml')
      return content
    
    def getReadNums(data,st):
      reg = re.compile(st)
      return re.findall(reg,data)
    
    url = 'http://jb51.net/marksinoberg/article/details/51493318'
    headers = {
      'referer':'http://jb51.net/',
      'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
    }
    i = 0
    while i<24:
      html = getHtml(url,headers)
      content = parse(html)
      result = content.find_all('span',class_='link_view')
      print result[0].get_text()
      i = i +1
    
    
    코드 실행 결과:
    
    D:\Software\Python2\python.exe E:/Code/Python/MyTestSet/ulib2/AddWatcher.py
    94   
    95   
    96   
    97   
    98   
    99   
    100   
    101   
    102   
    103   
    104   
    105   
    106   
    107   
    108   
    109   
    110   
    111   
    112   
    113   
    114   
    115   
    115   
    115   
    
    Process finished with exit code 0
    
    
    좋 은 점 은 BeautifulSoup 을 사용 하여 특정 위치의 데 이 터 를 캡 처 한 것 입 니 다.여 기 는 조회 수 에 대한 캡 처 입 니 다.위의 결과 에서 도 알 수 있 듯 이 한 IP 가 캡 처 한 데 이 터 는 양 이 제한 되 어 있 으 며 일반적으로 10~30 개 이 며 여 기 는 22 차례 방문 한 것 으로 보인다.
    전망 하 다.
    사실 저 는 한 번 에 여러 번 갱신 하 는 효 과 를 얻 을 수 있 습 니 다.그러나 이렇게 하 는 것 은 특별한 정파 가 아 닙 니 다.그래서 저 는 제 생각 을 말씀 드 리 겠 습 니 다.
  • result(조회 수 결과)를 판단 하고 연속 적 인 두 번 의 결과 가 일치 할 때 python 을 열 어 cmd 명령 을 실행 하고 자신의 IP 를 업데이트 합 니 다.그러나 이것 은 시간 이 걸 리 는 조작 으로 한 라인 에 넣 을 수 있다
  • 그리고 자신의 블 로그 list 인터페이스 를 캡 처 하여 자신의 모든 블 로그 글 을 얻 는 것 이다.물론 아 날로 그 로그 인 에 사용 되 는 것 은 분명 하 다.그리고 모든 블 로 그 를 훑 어 본다.이렇게 하면 비록 진정한 문 제 를 해결 하 지 는 못 했 지만,티끌 모 아 태산 이 되 어도 좋 은 효 과 를 거 둘 수 있다.4567918)
  • 정시 브러시 의 스 레 드 를 만 들 고 XX 시간 마다 새로 고침 합 니 다.이렇게 하루 가 지나 면 한 편의 문장 도 아마 몇 백 개의 방문 을 실현 할 수 있 을 것 이다.나 는 해 본 적 이 없다.나 도 모른다.
  • 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기