作者starlichin (白星羽)
看板Python
標題[問題] 初學網路爬蟲問題
時間Tue Oct 30 23:30:58 2018
目前在Coursera上自學Python網路爬蟲。
寫作業的時候碰到一個題目,就是要根據使用者輸入的position,
搜尋網頁中使用者指定position的網址,進入該網址後,
再搜尋下一頁面中該指定position的網址,如此重複counter次
原始題目敘述為:
In this assignment you will write a Python program that expands on
http://www.py4e.com/code3/urllinks.py. The program will use urllib to read
the HTML from the data files below, extract the href= vaues from the anchor
tags, scan for a tag that is in a particular position relative to the first
name in the list, follow that link and repeat the process a number of times
and report the last name you find.
下面是我目前寫好的部分,但只能列印出第一層指定位置的網址,不知道該怎麼
依照指定的counter重複進入該網址再列印下幾層的網址,請大家協助解惑了
import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
import ssl
# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
url = '
http://py4e-data.dr-chuck.net/known_by_Fikret.html'
counter = input ('Enter counter: ')
position = input ('Enter position: ' )
html = urllib.request.urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, 'html.parser')
# Retrieve all of the anchor tags
tags = soup('a')
lst = []
for tag in tags:
link = tag.get('href', None)
lst.append(link)
print(lst[int(position)-1])
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.130.5
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1540913462.A.C0E.html
→ takingblue: 再對下個link發request 10/31 15:37
→ takingblue: 根據你的counter寫一個loop 10/31 15:38
→ starlichin: 解決了! 感謝你 :) 10/31 23:15