网页抓取与网址按日期更改

时间:2015-12-16 15:15:51

标签: python html web-scraping beautifulsoup

我正在编写一个使用 python BeautifulSoup4 的脚本。脚本本身已经完成,唯一引起问题的部分是使用的URL。

我正在使用此代码传递网址:

urllist = ["samplewebsitename.com/2015/05/xxx-chapter-{}.html".format(str(pgnum).zfill(2)) for pgnum in range(1, chapter_number+1)]
for url in urllist:
    url_queue.put(url)

我遇到的一个问题是在抓取网站时我注意到网址的一部分正在根据上传时间而发生变化。例如:

samplewebsitename.com/2015/05/xxx-chapter-01.html
samplewebsitename.com/2015/06/xxx-chapter-32.html
samplewebsitename.com/2015/10/xxx-chapter-47.html

我可以处理章节,因为它们是连续的,但是在添加材料的几个月和几年中没有固定模式。我想知道是否有办法解决这个问题。

年份和月份也需要成为变量,由示例中的硬编码替换,但从网站上获取它们似乎比我想象的要难。

修改 显然,您可以从下拉列表中获取链接,这样可以简化整个问题,只需解析所有链接的下拉列表。

enter image description here

我现在唯一的小问题是如何正确解析它。目前正试图找到该网站的选择元素,但我仍然很新。

#Gets all the url's for each chapter
urllist = []
starturl = "http://www.bimanga.com/2015/05/read-manga-tokyo-ghoul-re-chapter-01.html"
response = requests.get(starturl)
html = response.content
soup = BeautifulSoup(html, "html.parser")
for option in soup.findAll('option'):
    #urllist.append(option["value"])
    print(option["value"]) #Debugging

1 个答案:

答案 0 :(得分:0)

您可以从此处显示的下拉列表中获取年份和月份:http://i.imgur.com/pvKgnDw.png

解析下拉列表(select元素)并获取链接。那么你可能甚至不需要建立年和月的网址。下拉列表可能包含章节的完整URL。

相关问题